zingle-com / dto
简单的DTOs
1.0.0
2019-09-19 21:26 UTC
Requires
- php: >=7.2
- phootwork/collection: ^1.6
Requires (Dev)
- doctrine/common: ^2.11
- escapestudios/symfony2-coding-standard: ^3.9
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^8.3
This package is auto-updated.
Last update: 2024-09-20 09:21:36 UTC
README
这是一个用于创建和序列化DTO树的简单库。
为什么?
将对象序列化为数组以传输,然后再将其作为其他类型的数据进行传输是一个痛苦的过程。这个库使您能够轻松创建装饰对象并描述其序列化行为的对象。解析器将遍历树进行序列化,因此最终结果是普通的数组。然后,您可以将其传递到任何您想要在此点将其序列化为其他格式的程序。
示例
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
贡献
Fork 仓库并针对 master 分支创建一个 PR。我们会查看的。