Пакет Argonaut DTO для Laravel

Перекладено ШІ
Оригінал: Laravel News
Оновлено: 03 травня, 2025
Легкий пакет Data Transfer Object (DTO) Argonaut для Laravel пропонує зручні функції для роботи зі складними структурами даних. Досліджуйте, як цей пакет може спростити вашу роботу з API і сервісами, а також забезпечити захист ваших даних за допомогою вбудованої валідації

Argonaut DTO для Laravel — це легкий пакет Data Transfer Object (DTO), який підтримує вкладене перетворення, рекурсивну серіалізацію та валідацію з коробки. Він ідеально підходить для сервісних шарів, API і архітектурних робочих процесів:

class UserDTO extends ArgonautDTO
{
    public string $username;
    public string $email;

    protected array $casts = [
        'username' => 'string',
        'email' => 'string',
    ];

    public function rules(): array
    {
        return [
            'username' => ['required', 'string'],
            'email' => ['required', 'email'],
        ];
    }
}

Завдяки класам assembler пакета ви можете перетворювати сирі дані, такі як об’єкти або масиви, у DTO:

class UserDTOAssembler extends ArgonautAssembler
{
    public static function toUserDTO(object $input): UserDTO
    {
        return new UserDTO([
            'username' => $input->display_name,
            'email' => $input->email,
        ]);
    }
}

// Використання assembler'а
$user = UserDTOAssembler::assemble([
    'display_name' => 'jdoe',
    'email' => 'jdoe@example.com',
], UserDTO::class);

// Використання методу `fromArray`:
$user = UserDTOAssembler::fromArray($userData, UserDTO::class);

Після складання DTO ви можете валідувати об’єкт:

$user->validate(); // Викликає ValidationException
$user->validate(throw: false); // Повертає масив помилок
$user->isValid(); // true/false

# Основні функції

Дізнайтеся більше про цей пакет, отримайте повні інструкції з встановлення та перегляньте код джерела на GitHub