alecrabbit/php-accessories

PHP Accessories: 类等

0.14.0 2019-10-10 09:15 UTC

README

PHP Version Build Status Appveyor Status Scrutinizer Code Quality Code Coverage Total Downloads

Latest Stable Version Latest Stable Version Latest Unstable Version

License Average time to resolve an issue Percentage of issues still open

安装

composer require alecrabbit/php-accessories

使用

详细信息请见 示例

功能

Caller::class

获取调用者 Class::method()function()Undefined

$caller = Caller::get() // object(AlecRabbit\Accessories\Caller\CallerData)

注意: CallerData::class 可以转换为字符串

if($wrongArguments) {
 throw new \RuntimeException(Caller::get() . ' provided wrong arguments'); 
}

您可以设置自己的字符串转换格式化器

$formatter = new CustomFormatter($options);
Caller::setFormatter($formatter);

注意: CustomFormatter::class 应实现 CallerDataFormatterInterface

Circular::class

辅助类,用于获取循环中的值

$c = new Circular([1, 2, 3]);
$value = $c(); // int(1) invoke 
$value = $c->value(); // int(2) get value by method
... 
$c(); // int(3)
...
$c(); // int(1)

注意: Circular::__construct 可以接受 arrayRewindable 或返回 \Generator 的可调用对象

Rewindable::class

可重绕生成器辅助类

$r = new Rewindable($genFunc); // $genFunc is a callable and returns \Generator
iterator_to_array($r);
$r->rewind();
G::class

包含生成器函数

$r = G::range(1, 3);  // object(Generator)
R::class

包含可重绕生成器函数

$r = R::range(1, 3); // object(AlecRabbit\Accessories\Rewindable)
iterator_to_array($r);
$r->rewind();
Pretty::class

字符串格式化器,例如百分比、字节和时间(秒、微秒、纳秒)

Pretty::bytes(10584760, 'mb'); // string(7) "10.09MB"
Pretty::time(0.214); // string(5) "214ms"
Pretty::percent(0.214);  // string(6) "21.40%"

Pretty::seconds(0.214); // string(5) "214ms"

Pretty::milliseconds(214); // string(5) "214ms"

Pretty::useconds(3212); // string(5) "3.2ms"
Pretty::useconds(12); // string(5) "12μs"
// alias for useconds
Pretty::microseconds(12); // string(5) "12μs"

Pretty::nanoseconds(10485); // string(7) "10.5μs"
Pretty::nanoseconds(105); // string(7) "105ns"

注意: Pretty::class 的时间格式化方法以它们接受的单位命名

MemoryUsage::class

获取内存使用的辅助类

$report = MemoryUsage::reportStatic('mb');
echo $report . PHP_EOL;
// Memory: 0.75MB(32.73MB) Real: 2.00MB(34.00MB)

您可以设置自己的字符串转换格式化器

$formatter = new CustomFormatter($options);
MemoryUsage::setFormatter($formatter);

注意: CustomFormatter::class 应实现 MemoryUsageReportFormatterInterface

注意:参数 $optionsMemoryUsageReportFormatter 无效