proklung/dto-mapper-bundle

DTO 映射包。

安装次数: 1

依赖者: 0

建议者: 0

安全性: 0

星标: 2

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

1.0.0 2021-06-01 07:31 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:40 UTC


README

内部

安装

composer.json

    "repositories": [
        {
            "type": "git",
            "url": "https://github.com/proklung/dto.mapper.bundle"
        }
    ]
composer require proklung/dto-mapper-bundle

功能

服务 dto_mapper_bundle.mapper 有两个方法

  1. convert($source, $destination)
  2. convertCollection(iterable $sources, string $destination): iterable

示例

例如这样

class EmployeVersionTwo
{
    /**
     * @var string $firstName
     */
    private $firstName = 'first name version two';

    /**
     * @var string $lastName
     */
    private $lastName = 'last name version two';

    /**
     * @var string $unused
     */
    private $unused = '';

    /**
     * @return string
     */
    public function getFirstName(): string
    {
        return $this->firstName;
    }

    /**
     * @return string
     */
    public function getLastName(): string
    {
        return $this->lastName;
    }
}
class EmployeDtoVersionTwo
{
    /**
     * @var string $firstName
     */
    public $firstName = 'first name dto';

    /**
     * @var string $lastName
     */
    public $lastName = 'last name dto';
}


$mapper = container()->get('dto_mapper_bundle.mapper');
$srcObj = new EmployeVersionTwo();

$result = $mapper->convert($srcObj, EmployeDtoVersionTwo::class);
var_dump($result);

结果(已映射来自原始类的属性)

object(EmployeDtoVersionTwo)#7268 (2) { ["firstName"]=> string(22) "first name version two" ["lastName"]=> string(21) "last name version two" }