osmianski / super-objects
一个提供PHP中创建超级对象的基础类库,这些对象具有延迟属性、优雅的依赖注入等功能。
v0.2.0
2023-01-28 13:40 UTC
Requires
- php: ^8.2
Requires (Dev)
- phpunit/phpunit: ~9.0
This package is auto-updated.
Last update: 2024-09-28 17:17:53 UTC
README
介绍
osmianski/super-objects
包提供PHP中创建超级对象的基础类。超级对象与其“传统”对应物有何不同
- 它的“延迟”属性只在访问时计算一次。延迟属性(以及其他特性)使依赖注入既快速又优雅。
- :) 更多特性即将到来 :)
安装
在项目目录中,运行
composer require osmianski/super-objects
用法
基本语法
例如,在下面的示例中,扩展 SuperObject
类,在类注释中定义一个属性,并定义一个计算它的getter
use Osmianski\SuperObjects\SuperObject; ... /** * @property string $message */ class Foo extends SuperObject { protected function get_message(): string { return 'Hello, world!'; } }
第一次访问属性时,将创建并分配由getter返回的值。在后续的属性访问中,不会执行getter - 返回已存储的值
$foo = new Foo(); // executing the getter echo $foo->message; // using the stored value echo $foo->message;
或者,在构造函数中传递属性值
$foo = new Foo(['message' => 'custom message']); // prints the custom message echo $foo->message;
如果你预期将值传递到构造函数中,则抛出 Required
异常
use Osmianski\SuperObjects\Exceptions\Required; ... /** * @property string $message */ class Foo extends SuperObject { protected function get_message(): string { throw new Required(__METHOD__); } }
许可证
osmianski/super-objects
包是开源软件,许可协议为MIT许可证。