mekras / class-helpers
PHP类的一些常用辅助函数
v1.5
2016-08-22 10:20 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^4.8.26
- satooshi/php-coveralls: dev-master
README
GettersCacheTrait
允许在对象生命周期内缓存getter返回的值。
示例
<?php use Mekras\ClassHelpers\Traits\GettersCacheTrait; class MyClass { use GettersCacheTrait; private $foo; public function getFoo() { return $this->getCachedProperty( 'foo', function () { return new FooClass($this->foo); } ); } public function setFoo($value) { if ($value instanceof FooClass) { $this->setCachedProperty('foo', $value); $value = $value->getId(); } $this->foo = $value; } }
LoggingHelperTrait
- 日志记录器设置/获取器。
- getLogger在没有设置日志记录器时返回NullLogger — 你可以省略日志记录器检查。
- 快速记录异常的方法。
示例
<?php use Mekras\ClassHelpers\Traits\LoggingHelperTrait; class MyClass { use LoggingHelperTrait; public function foo() { ... $this->getLogger()->notice('...'); } public function bar($value) { try { ... } catch (\Exception $e) { $this->logException($e, 'Executing bar'); } } }
WrapperTrait
创建包装类辅助函数
示例
<?php use Foo\FooInterface; use Mekras\ClassHelpers\Traits\WrapperTrait; class MyClass implements FooInterface { use WrapperTrait; public function __construct(FooInterface $wrappedObject) { $this->setWrappedObject($wrappedObject); } public function foobar() { // Overridden logic here } } $foo = get_foo_instance(); // Somehow get instance of class implementing FooInterface $wrap = new MyClass($foo); // Now $wrap can be used instead of $foo, but with overridden foobar method.