zingle-com/dto
Composer 安装命令:
composer require zingle-com/dto
包简介
Simple DTOs
README 文档
README
Simple library for creating and serializing DTO trees.
Why?
Serializing objects to arrays to transmit then as other types of data is a pain. This library makes it easy to create objects that decorate objects and describe their serialization behavior. Resolver will then walk the tree serializing as it goes, so you end up with a plain array. Pass it along to whatever you'd like to serialize the format to at that point.
Example
use ZingleCom\DTO\Resolver; use ZingleCom\DTO\Transmittable; use Acme\SomeModel; // Imagine that SomeModel has exposed getters on properties we'd like to serialize class SomeModelDTO implements Transmittable { /** * @var SomeModel */ private $someModel; /** * @param SomeModel $someModel */ public function __construct(SomeModel $someModel) { $this->someModel = $someModel; } public function toArray(): array { return [ 'id' => $this->someModel->getId(), 'name' => $this->someModel->getName(), // imagine we have a related dto and model too 'relatedModel' => new RelatedModelDTO('id' => $this->someModel->getRelatedModel()), ]; } } // ... later you can do // imagine $someModel is instantiated somewhere else $resolver = new Resolver(); $data = $resolver->resolve(new SomeModelDTO($someModel)); // $data is now an array as described in DTOs, now we can serialize to whatever $json = json_encode($data); // JSON for instance
Contribute
Fork me and open a PR against master. We'll look at it.
统计信息
- 总下载量: 4.96k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-09-19