apfelfrisch/data-transfer-object

0.2.3 2021-05-18 10:25 UTC

This package is auto-updated.

Last update: 2024-09-21 21:47:13 UTC


README

Unit Test Static Analysis

此包深受 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'
);