Фреймворк Laravel, конечно же, давно предоставляет довольно удобные инструменты для валидации и модификации входящих и исходящих (request и response) данных. Всем нам известны FormRequest, Eloquent API Resource, пакет DataTransferObject (DTO) от Spatie. Зачем же та же самая компания Spatie создала новую библиотеку, laravel-data? И почему она показалась мне такой интересной? Да просто потому, что эта библиотека, с одной стороны, не привносит ничего особенно нового, а с другой - делает работу по обмену данными более простой и универсальной. Один хорошо написанный с помощью этой библиотеки класс делает всю необходимую валидацию и трансформацию любых данных на любом участке обмена ими. Да плюс ко всему, один дополнительный пакет позволяет ещё и трансформировать эти data objects, написанные на PHP в... описания типов для TypeScript! Как хотите, но мне этот подход кажется очень интересным. Вот я и создал маленький тестовый проектик, чтобы показать на примерах, как удобно, просто и гибко можно управлять обменом данных в наших laravel-приложениях. Надеюсь, ролик заинтересует как начинающих, так и опытных PHP и Laravel-разработчиков. Содержание видео “Laravel-data от Spatie: просто и со вкусом! Описание библиотеки.“: 0:00 О чём пойдёт речь 0:40 Чем отличаются объекты полноценных классов от объектов данных (data object)? 1:55 Когда мы используем data objects? Диаграмма потоков данных между клиентами, нашим API и сторонним API. 4:10 Валидация данных, как реквеста, так и респонза. 7:35 Известные инструменты работы с данными в Laravel: FormRequest, Eloquent API Resource, библиотека spatie/data-transfer-object. 11:20 Переходим к обзору laravel-data от Spatie. 12:35 Практикум. Создаём объект данных (data object) для описания персоны. На его примере валидируем и модифицируем данные реквестов и респонзов. 32:20 Подробнее о работе с датами. 36:05 Обзор возможностей laravel-data по документации библиотеки. 37:05 TypeScript-трансформация с помощью laravel-data. 41:10 Заключительные рассуждения. Полезные ссылки: ➡ Документация библиотеки spatie/laravel-data: ➡ Репозиторий: Получать анонсы новых видео можно на нашем телеграм-канале “Глазами фрилансера“: #ГлазамиФрилансера #Laravel #PHP
Hide player controls
Hide resume playing