DTO в laravel для requests а также обзор библиотеки от Spatie
Сегодня мы затронем тему DTO в Laravel - data transfer object. Рассмотрим, как работать с данными в структурированном виде. Научимся использовать объекты передачи данных (DTO).
#dto#laravel#cutcode
---------------------------------------------------------------------------------
❗️❗️❗️Присоединяйся к нашему комьюнити в телеграм - там и советом помогут и много интересного -
🤖🤖🤖Мой помощник Тэйлор готов выдать тебе подарок. Забирать тут -
---------------------------------------------------------------------------------
⏰ Таймкоды:
00:00 Введение
00:31 Описание проблемы
01:52 Реализация DTO
03:36 Обзор библиотеки от Spatie
06:57 Подведение итогов
Всех поклонников Laravel я приветствую на канале Cutcode! Сегодня мы затронем тему DTO в ларавел - data transfer object. Быстро пройдемся по этой теме а также рассмотрим специальный пакет от spatie по организации слоя DTO в Laravel проекте. Обсудим с вами зачем это нужно, как с этим работать и мое личное мнение об этом паттерне.
Итак давайте начнём с проблемы - мы работаем с request в laravel. У нас есть валидация, есть метод validated который возвращает нам массив и мы находясь здесь ничего не знаем, что у нас в этом массиве, для нас он черный ящик. IDE нам также ничего не подскажет об этом массиве. Мы не знаем какие элементы в этом массиве в данном случае находится. Если мы работаем с FormRequest и провалимся в класс, там и хотя бы в методе rules можем увидеть какие именно параметры будет возвращать метод validated. Но если в целом мы работаем с request и возвращаем все параметры, то мы вообще понятия не имеем что там находится. Ну и здесь в целом тоже пока мы не уходим в класс, мы ничего о нем не знаем. Ошибиться в таком подходе гораздо проще. Да как минимум случайно ошибиться в написании ключа. Исправить сие недоразумение можно добавив дополнительный слой представления DTO и это всего лишь дополнительный класс, который примет все параметры из вашего массива с запросам и трансформирует объект перед определенными свойствами и типами и далее с ним работа будет выполнена удобно и IDE нам всегда подскажет что именно содержится в этом объекте. Давайте взглянем на такой объект и применим его в нашем примере.
Итак давайте взглянем на такой класс. Я его уже создал, располагается он у меня в директории DTO и здесь класс PostForm, который как раз ответственен за PostFormRequest. Давайте на него посмотрим как видите это простой класс ничего особенного в нем нет, за единственным исключением - присутствует статический метод FormRequest, который принимает объект Request и в последующем создает экземпляр класса FormRequest на основе параметров которые у нас как раз находятся в методе Rules, который у нас возвращаются от метода validated. Далее в контроллере нам необходимо немножко изменить наш код - убрать RequestValidated - здесь обратиться к PostForm обратиться к методу FormRequest параметрам отдать объект FormRequest и в конечном итоге работать с датой как с экземпляром класса PostForm. И здесь уже IDE нам спокойно подсказывает, какие свойства есть какие методы, плюс мы в самом классе можем указать какие типы у свойств. И работать в таком ключе будет гораздо удобнее.
---------------------------------------------------------------------------------
📹 делитесь этим видео с друзьями:
🔔 подпишитесь на YouTube-канал:
📼 Курс по Laravel с нуля:
DTO в laravel для requests а также обзор библиотеки от Spatie
---------------------------------------------------------------------------------
🔗 наш сайт:
📷 наш instagram:
📱 Наш telegram-канал:
8 views
1114
369
1 minute ago 00:09:12 1
[Hoika 4] БЕСПОЛЕЗНЫЕ ВЕЩИ В HEARTS OF IRON 4!
2 minutes ago 00:02:52 1
147 дней до вступления в НАСЛЕДСТВО
2 minutes ago 00:00:13 1
Немного юмора в ленту😂🤣наше закулисье.
6 minutes ago 00:05:27 1
Nightwish - Частушки Бабок-Ёжек (Летучий Корабль) (Udio Ai Cover) (Песня на Заказ)
9 minutes ago 03:09:42 1
[SpecterChannel] КОНЧАЕМ СТРАДАТЬ в Самом Сложном Моде GTA Vice City 2024 Года? - Extiagon Mod - Стрим 2
10 minutes ago 03:12:00 1
[SpecterChannel] пытаюсь пройти Самый Сложный Мод на GTA Vice City 2024 Года! (GTA Extiagon Mod)
11 minutes ago 00:09:04 1
Дмитрий Халезов: называя вещи своими именами - в Генштабе сидят не полководцы, а верховные мясники
13 minutes ago 00:00:43 1
Добровольцы передали помощь в пункты временного размещения Ясиноватой
14 minutes ago 00:03:58 1
Papa Roach - Between Angels And Insects (На русском | RADIO TAPOK)
16 minutes ago 00:09:11 1
Взаимодействие энергетического и физического тел.
16 minutes ago 00:10:45 1
Краткая история ИНТЕРНЕТА
21 minute ago 00:27:49 1
Здоровая и полезная еда для ребенка. Питание в детском саду. Вальдорфский педагог Кира Бабич.
21 minute ago 00:41:05 1
Лепим с маленьким ребенком из натурального воска. Вальдорфская садовница Елена Лутченкова
23 minutes ago 00:44:32 1
Это счастье! УДАРИЛ МОРОЗ И У РЫБЫ НАЧАЛСЯ ЖОР! Вот это рыбалка!
24 minutes ago 01:41:59 1
Шампанское на завтрак. Из болгарской деревни на Лазурный берег
30 minutes ago 00:10:07 19
Как правильно одеваться в классику под любой формат мероприятия?
31 minute ago 00:02:43 1
Mary Gu — Сокровище (Official Audio)
31 minute ago 00:09:26 1
Почему норвежцы любят секонд-хенды. Культура потребления в Норвегии | Готовимся к пополнению
31 minute ago 00:01:02 1
В рамках марафона «Служение» продолжаем знакомить вас с нашими жителями, которые посвящают себя служению другим и своей стране
32 minutes ago 00:01:00 1
Женщине от мужчины нужны всего 2 вещи... #Торсунов
36 minutes ago 00:01:31 1
Ассоциации - Рамиль Мамедов | ДЦП, деньги, страх, смерть, мечта и смысл жизни.