bluestone / dto
数据传输对象
v1.1.1
2022-12-07 13:35 UTC
Requires
- php: ^8.1
- bluestone/collection: ^0.1.0
Requires (Dev)
- marcocesarato/php-conventional-changelog: ^1.15
- phpunit/phpunit: ^9.5.10
- squizlabs/php_codesniffer: ^3.7
README
安装
此包需要 php:^8.1
。
您可以通过composer安装它
composer require bluestone/dto
用法
此包的目标是简化构建用于传递结构化数据的对象的构建。
构建简单的DTO
一个扩展DTO的类的示例
use Bluestone\DataTransferObject\DataTransferObject; class Hooman extends DataTransferObject { public string $name; }
您可以像这样实例化此类
$jane = new Hooman(name: 'Jane'); $john = new Hooman(['name' => 'John']);
使用类型转换构建复杂的DTO
一个具有类型转换属性的类的示例
use Bluestone\DataTransferObject\DataTransferObject; use Bluestone\DataTransferObject\Attributes\CastWith; use Bluestone\DataTransferObject\Casters\ArrayCaster; class Hooman extends DataTransferObject { public string $name; #[CastWith(ArrayCaster::class, type: Hooman::class)] public array $children; }
您可以像这样实例化此类
$jane = new Hooman( name: 'Jane', children: [ new Hooman(name: 'Mario'), new Hooman(name: 'Luigi'), ], ); $john = new Hooman([ 'name' => 'John', 'children' => [ ['name' => 'Mario'], ['name' => 'Luigi'], ], ]);
使用映射构建复杂的DTO
一个具有映射属性的类的示例
use Bluestone\DataTransferObject\DataTransferObject; use Bluestone\DataTransferObject\Attributes\Map; class Hooman extends DataTransferObject { #[Map('date_of_birth')] public string $bornAt; }
您可以像这样实例化此类
$jane = new Hooman( date_of_birth: '1970-01-01', ); $john = new Hooman([ 'date_of_birth' => '1970-01-01', ]);