yiisoft / hydrator
创建并填充对象,支持类型转换、映射和依赖解析。
1.5.0
2024-09-17 16:10 UTC
Requires
- php: ^8.1
- psr/container: ^2.0
- yiisoft/injector: ^1.1
- yiisoft/strings: ^2.3
Requires (Dev)
- maglnet/composer-require-checker: ^4.7
- phpunit/phpunit: ^10.5
- rector/rector: ^1.2
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^5.23
- yiisoft/di: ^1.2
- yiisoft/dummy-provider: ^1.0
- yiisoft/test-support: ^3.0
Suggests
- ext-intl: Allows using `ToDateTime` parameter attribute
This package is auto-updated.
Last update: 2024-09-17 16:11:52 UTC
README
Yii Hydrator
该包提供了一种从一组原始数据创建和填充对象的方法。
特性包括
- 支持任何可见性的属性;
- 使用构造函数参数创建对象;
- 使用提供的 PSR-11 兼容 DI 容器解析创建对象时的依赖关系;
- 支持嵌套对象;
- 支持映射;
- 允许通过 PHP 属性进行精细调整填充过程。
要求
- PHP 8.1 或更高版本。
安装
该包可以通过 Composer 安装
composer require yiisoft/hydrator
通用用法
填充现有对象
use Yiisoft\Hydrator\Hydrator; $hydrator = new Hydrator(); $hydrator->hydrate($object, $data);
创建新对象并填充数据
use Yiisoft\Hydrator\Hydrator; $hydrator = new Hydrator(); $object = $hydrator->create(MyClass::class, $data);
要向嵌套对象的构造函数传递参数,请使用嵌套数组或点表示法
final class Engine { public function __construct( private string $name, ) {} } final class Car { public function __construct( private string $name, private Engine $engine, ) {} } // nested array $object = $hydrator->create(Car::class, [ 'name' => 'Ferrari', 'engine' => [ 'name' => 'V8', ] ]); // or dot-notation $object = $hydrator->create(Car::class, [ 'name' => 'Ferrari', 'engine.name' => 'V8', ]);
这将传递 name
构造函数参数给 Car
对象,并为 engine
参数创建一个新的 Engine
对象,将其构造函数的 name
参数传递为 V8
。
文档
如果您需要帮助或有问题,Yii 论坛 是一个不错的选择。您还可以查看其他 Yii 社区资源。
许可
Yii Hydrator 是免费软件。它根据 BSD 许可证发布。有关更多信息,请参阅 LICENSE
。
由 Yii Software 维护。