demidovich / d2-dto

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status codecov

d2 dto

This is a simple base class of data transfer object. The class constructor casts primitives into value objects.

class CreateBookCommand extends Dto
{
    private BookName $name;
    private AuthorId $author_id;
}

$command = new CreateBookCommand([
    'name' => 'Анна Каренина',
    'author_id' => 10,
]);

$command = new CreateBookCommand([
    'name' => 'Анна Каренина',
], \D2\Dto::PARTIAL);

Example of usage with partial data load.

class UpdateBookCommand extends Dto
{
    private BookName $name;
    private AuthorId $author_id;
}

$command = UpdateBookCommand::partial([
    'name' => 'Анна Каренина',
]);

if ($command->has('name')) {
    $book->rename($command->name);
}

About

License:MIT License


Languages

Language:PHP 84.2%Language:Makefile 6.3%Language:Dockerfile 4.9%Language:Shell 4.5%