andrewmead / wordpress-proper
一组可能对WordPress开发有用的类
Requires (Dev)
- php: >=7.3.27
- friendsofphp/php-cs-fixer: ^3.4.0
- php-stubs/woocommerce-stubs: ^7.5
- phpstan/phpstan: ^1.10
- phpunit/phpunit: 9.6.8
- sniccowp/php-scoper-wordpress-excludes: ^6.1
- szepeviktor/phpstan-wordpress: ^1.1
- yoast/phpunit-polyfills: ^1.0
README
WordPress Proper
一组无需依赖即可用于WordPress开发的类。
文档
入门指南
WordPress Proper可以通过composer安装
composer require andrewmead/wordpress-proper
从那里,您可以导入您需要的任何模块
use Proper\Number; Number::abbreviate(654201); // 654.2K
周期性
Periodic::check(string $option_name, string|DateInterval $interval): bool
Periodic
允许您周期性地执行某些操作。它由WordPress选项和PHP的DateInterval
类提供支持。
当您需要偶尔执行某些操作时,它非常合适。在下面的示例中,Periodic
用于每30分钟运行一次代码。
<?php use Proper\Periodic; if (Periodic::check('verify_geo_database_file', 'PT30M')) { // Run some code every 30 minutes }
第一个参数是要用于支持周期性任务的选项名称。此选项将存储周期性任务上次运行的时间。
第二个参数是您定义要等待的周期。这可以表示为DateInterval
或一个有效的字符串持续时间,该持续时间是DateInterval
构造函数可以接受的。
// Define the period using a string $should_verify = Periodic::check('verify_geo_database_file', 'PT3S'); // Define the period using a DateInterval $interval = new DateInterval('PT3S'); $should_verify = Periodic::check('verify_geo_database_file', $interval);
check
调用始终返回布尔值。如果现在是运行任务的时间,则值为true
。如果自任务上次完成以来尚未经过指定的时间段,则值为false
。
数字
缩写
Number::abbreviate(int|float $number, bool $round = false): string
abbreviate
方法将大数字(如742898)缩写为较短的字符串(如743K)。
<?php use Proper\Number; Number::abbreviate(1260000); // 1.3M Number::abbreviate(133800); // 133.8K // Round off decimals Number::abbreviate(133800, true); // 134K
它提供了以下缩写:
- 千 -
Number::abbreviate(133300)
返回字符串133.3K
- 百万 -
Number::abbreviate( 1300000 )
返回字符串1.3M
- 十亿 -
Number::abbreviate( 999000000000 )
返回字符串999B
- 万亿 -
Number::abbreviate( 1000000000000 )
返回字符串1T
低于一千的数字不缩写。这意味着 Number::abbreviate(978)
会返回字符串 978
。
等于或高于十亿级的数字不缩写。这意味着 Number::abbreviate(1000000000000000)
会返回字符串 1,000,000,000,000,000
。
在幕后,abbreviate
使用WordPress的 number_format_i18n
来国际化缩写。这确保了 Number::abbreviate(1500)
对于 en_US
返回字符串 1.5K
,而对于 de_DE
返回 1,5K
。
时区
一组小型函数,使处理WordPress站点的时区变得更简单。
- ::site_timezone(): DateTimeZone
- ::site_offset(): string
- ::site_offset_in_hours(): float
- ::site_offset_in_seconds(): float
- ::utc_timezone(): DateTimeZone
- ::utc_offset(): string
- ::utc_offset_in_hours(): float
- ::utc_offset_in_seconds(): float
site_timezone
::site_timezone(): DateTimeZone
获取以PHP DateTimeZone
表示的WordPress站点的时区。
<?php use Proper\Timezone; Timezone::site_timezone(); // new DateTimeZone('America/New_York')
site_offset
::site_offset(): string
获取WordPress站点时区的偏移量。这表示为字符串。例如,包括 "-04:00"
,"+08:45"
和 "-11:30"
。
<?php use Proper\Timezone; Timezone::site_offset(); // "-04:00"
site_offset_in_hours
::site_offset_in_hours(): float
获取WordPress站点时区的十进制偏移量。这表示为浮点数。例如,包括 -4
,8.75
和 -11.5
。
<?php use Proper\Timezone; Timezone::site_offset_in_hours(); // -4
site_offset_in_seconds
::site_offset_in_seconds(): int
获取WordPress站点时区的偏移量(以秒为单位)。这表示为int类型。例如包括-14400
、31500
和-41400
。
<?php use Proper\Timezone; Timezone::site_offset_in_seconds(); // -14400
utc_timezone
::utc_timezone(): DateTimeZone
获取代表UTC的DateTimeZone
实例。这总是返回相同的值,但作为site_timezone
的一个便捷替代品。
<?php use Proper\Timezone; Timezone::utc_timezone(); // Will always return new DateTimeZone('UTC');
utc_offset
::utc_offset(): string
获取UTC的偏移量。这总是返回+00:00
。这总是返回相同的值,但作为site_offset
的一个便捷替代品。
<?php use Proper\Timezone; Timezone::utc_offset(); // Will always return "+00:00"
utc_offset_in_hours
::utc_offset_in_hours(): float
获取UTC的十进制偏移量。这总是返回0
。这总是返回相同的值,但作为site_offset_in_hours
的一个便捷替代品。
<?php use Proper\Timezone; Timezone::utc_offset_in_hours(); // Will always return 0
utc_offset_in_seconds
::utc_offset_in_seconds(): int
获取UTC的十进制偏移量。这总是返回0
。这总是返回相同的值,但作为site_offset_in_seconds
的一个便捷替代品。
<?php use Proper\Timezone; Timezone::utc_offset_in_seconds(); // Will always return 0