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
Ви коли-небудь задумувалися, як полегшити свою роботу в Laravel? У нашій статті ми розглядаємо, як інтеграція Claude Code в PhpStorm може підвищити вашу продуктивність, спростивши процес написання коду та навчання нових розробників. Читайте далі, щоб дізнатися більше про переваги та функціональність цього потужного поєднання
Вперше у світі Laravel з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel
Laravel 13 вийде в березні 2026 року й вимагатиме мінімум PHP 8.3. Хочете дізнатися, як PHP‑атрибути для моделей, нові налаштування черг і метод Cache::touch() вплинуть на вашу розробку?