guennichi/mapper

一个轻量级库,用于将数组数据映射到PHP不可变对象

2.1.2 2024-01-15 13:00 UTC

This package is auto-updated.

Last update: 2024-09-15 14:29:42 UTC


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ý 对我的支持和建议,使这一切成为可能。