apfelfrisch / data-transfer-object
0.2.3
2021-05-18 10:25 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.2
- vimeo/psalm: ^4.7
README
此包深受 spatie/data-transfer-object 的启发。主要区别在于 DataTransferObject 不附带构造函数。这使得初始化不那么神奇,更适合静态分析。
安装
您可以通过 composer 安装此包
composer require apfelfrisch/data-transfer-object
用法
以下是一个 DTO 的样子
use Apfelfrisch\DataTransferObject; use Apfelfrisch\DataTransferObject\Casters\DateTimeCast; class MyDTO extends DataTransferObject { public function __construct( public int $a, public float $b, public OtherDTO $otherDTO, #[DateTimeCast] public DateTime $date, ) { } }
您可以通过参数转换构造此 DTO,如下所示
$dto = MyDTO::fromArrayWithCast([ 'a' => 1, 'b' => 2.2, 'otherDTO' => ['id' => 3], 'date' => '2021-05-01' );