drewlabs / php-value
PHP 对象构建和序列化库
v0.3.2
2024-09-23 17:31 UTC
Requires
- php: ^7.2|^8.0
- drewlabs/core-helpers: ^0.3
- symfony/polyfill-php81: ^1.24
Requires (Dev)
- drewlabs/collections: ^0.3.0
- phpunit/phpunit: ^9.5
README
该库为 PHP 应用和项目提供实用对象。
用法
库提供了两种创建对象的方式。
您可以使用面向对象实现,可以扩展抽象类 [Drewlabs\PHPValue\Value]
- 面向对象实现
use Drewlabs\PHPValue\ObjectAdapter; class ValueStub extends ObjectAdapter { protected $__PROPERTIES__ = [ 'name', 'address', ]; } // Creating instance $value = new ValueStub([ 'name' => 'Azandrew', 'address' => '288 Avenue Pia, Lome' ]);
或者使用 [Drewlabs\PHPValue\Functions\CreateValue] 函数。
- 函数式接口
// Imports use function Drewlabs\PHPValue\Functions\CreateAdapter; $value = CreateAdapter([ // dynamic properties 'name', 'address' ]);
使用这两种方式,您都会创建 [Drewlabs\PHPValue\Value] 类的一个实例。
- 创建对象的副本
// Imports use function Drewlabs\PHPValue\Functions\CreateAdapter; $value = CreateAdapter([ // dynamic properties 'name', 'address' ]); // This tries to create a deep copy of the object $value1 = $value->copy([ 'name' => 'Sidoine Azandrew' ]);
- 获取对象的属性
值对象是数组可访问的,这意味着我们可以使用 [] 运算符来访问对象属性。它还覆盖了 [__get] 魔术方法以实现属性可访问性,并提供了一个 [getAttribute()] 方法,用于在对象上查询属性。
// Imports use function Drewlabs\PHPValue\Functions\CreateAdapter; $value = CreateAdapter([ // dynamic properties 'name', 'address' ]); $result = $value['name']; // Same as $result = $value->name; // Same as $result = $value->getAttribute('name');