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 з'являється можливість, яка значно спростить ваше повсякденне програмування завдяки новому пакету Laravel Boost. Читайте статтю, щоб дізнатися, як посилена інтеграція штучного інтелекту може підвищити ефективність вашої роботи та оптимізувати створення проектів у Laravel
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення