guennichi / mapper
一个轻量级库,用于将数组数据映射到PHP不可变对象
2.1.2
2024-01-15 13:00 UTC
Requires
- php: ^8.1
- phpdocumentor/reflection-docblock: ^5.3
- phpdocumentor/type-resolver: ^1.6
- symfony/filesystem: >=5.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- phpbench/phpbench: ^1.2
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10
- symfony/property-access: ^6.2
- symfony/property-info: ^6.2
- symfony/serializer: ^6.2
- symfony/var-dumper: ^6.2
README
一个轻量级库,通过构造函数将数组数据映射到PHP 不可变对象、集合和强类型数组。
基准测试
请查阅 benchmark/
目录以获取更多关于实现细节的信息。
安装
composer require guennichi/mapper
用法
use Guennichi\Collection\Collection; final class Person { public function __construct(public readonly string $name) {} } /** * @extends Collection<Person> */ final class PersonCollection extends Collection { public function __construct(Person ...$elements) { parent::__construct(...$elements); } } $input = [ ['name' => 'Person1'], ['name' => 'Person2'], ['name' => 'Person3'], ]; $mapper = new Guennichi\Mapper\Mapper(/** dependencies */) $output = $mapper->map($input, PersonCollection::class); // Result instance of PersonCollection(Person{"name": "Person1"}, Person{"name": "Person2"}, Person{"name": "Person3"})
致谢
特别感谢我的同事 @Gabriel Ostrolucký 对我的支持和建议,使这一切成为可能。