Разбор JsonResource. Под капотом Laravel

  Рет қаралды 1,765

Просто о Laravel. CutCode

Просто о Laravel. CutCode

Күн бұрын

Пікірлер: 20
@Ilya-Co-Founder
@Ilya-Co-Founder Ай бұрын
Я юзаю для ответов джейсонресурси а для бизнеслогиги дто. И кайфую 😊 За видос спасибо
@murchenko99
@murchenko99 Ай бұрын
я тоже, но вот как раз начинаются проблемы когда нужно что-то в ресурсах делать этих. теперь задумался и на ответы DTOхи делать вместо ресурсов
@web_tj
@web_tj Ай бұрын
Спасибо за ролик!
@Seraf_
@Seraf_ Ай бұрын
Если есть, значит можно использовать. В чем проблема? Куча методов на фильтрацию атрибута в ресурсе это плохо?
@CutCodeRu
@CutCodeRu Ай бұрын
@@Seraf_ используйте, кто ж мешает) я не использую а позицию обьяснил
@mclotos
@mclotos Ай бұрын
Так если у тебя DTO, то какая тебе разница что там на слое фреймворка или в базе данных происходит. По сути, ты можешь даже выкинуть лару и код бизнес-процессов запустить в другом фреймворке или вообще без фреймворка.
@CutCodeRu
@CutCodeRu Ай бұрын
@@mclotos так точно
@mishafomin3973
@mishafomin3973 Ай бұрын
Так а как лучше на ваше мнение? Чисто дто или чтоб дто имплементил или екстендил какой-то полезный класс с плюшками из ларавельных?
@mclotos
@mclotos Ай бұрын
@@mishafomin3973 Data Transfer Object должен передавать данные между слоями приложения. Разные слои приложения могут быть написано по-разному и работать с разными наборами данных, а задача DTO как раз в том, чтобы подружить слой бизнес-логики со слоем фреймворка, передавая данные между ними. По сти это эволюция паттернов Прокси, Адаптер и может даже Фасад (но это не точно). Будет ли он использовать ORM или QueryBuilder не так важно. Важно, что он отвязывает структуру сущности бизнес-процесса от ее структуры хранения в базе. Не знаю как проще это объяснить
@NK-kg1qv
@NK-kg1qv Ай бұрын
​@@mclotos Должно, но не обязано) Как часто вам приходилось менять базу данных, ORM за время работы? P.S. сам я использую DTO только для того, чтобы сгруппировать несколько параметров для сервис-класса, а на выходе уже идет модель
@mclotos
@mclotos Ай бұрын
@@NK-kg1qv ну у меня есть несколько компонентов проекта, которые пару раз переезжали на другой фреймворк. Просто они очень древние) ну и я не говорю о смене бд, а только о смене структур - поля переезжают из таблицы в таблицу, связи меняются, но это не должно влиять на БП
@KDenisG
@KDenisG Ай бұрын
У ДТО есть ответственность, типизировать данные при передаче их между слоями, не писать в них бизнес логику, не валидировать, не делать респонс. Если фреймворк рекомендует что-то, то наверно не просто так, наверно чтобы была преемственность и проекты на ларавел не превращались в мусорку. Но есть учители, которые навязывают свое субъективное мнение
@CutCodeRu
@CutCodeRu Ай бұрын
@@KDenisG наверно)
@mihaivanov8569
@mihaivanov8569 Ай бұрын
Обожаю челов, которые недавно узнали за солид и с умным видом пытаются нести ахинею. То есть, если мы декомпозируем dto на отдельные классы валидации и отдельные коассы типизации параметров, то мусора меньше станет? Мне кажется наоборот его больше станет, это ненужное усложнение только усложняет отлаживание кода в будущем
@KDenisG
@KDenisG Ай бұрын
​@@mihaivanov8569 Милый мой хороший, мне глубоко индифферентно кого ты там обожаешь, ты улови суть, если разрабы php не будут следовать нотации хотя бы внутри одного фреймворка, то языку не выйти на уровень доверия даже питона или js. А конкретно ты можешь писать, как угодно и что угодно, не жалко
@emris_merlin
@emris_merlin 12 күн бұрын
​@@mihaivanov8569 dto это просто чтобы представить данные из одного вида в другой. Валидацию нужно делать отдельно до передачи в dto. Если писать в одном классе, то со временем превратится в большую проблему
@NK-kg1qv
@NK-kg1qv Ай бұрын
Видео полезное, но не отвечает на вопрос "А что, если не JsonResource" ? Какая альтернатива по архитектуре? Ведь зачастую бывает так, что то, что приходит и возвращается из Service-слоя не совпадает с тем, что нужно отправить обратно. Как назвать такие слои и как организовать структуру папок? Я пока использую JsonResource именно для возврата на Frontend данные, но все чаще приходит на ум вернуть обычный массив. По Laravel-Data как-то слабовато. Там есть и Paginate, и урезанный Dto(вместо Data, отличия в трейтах только), и трейты, которые добавляют функционал.
@CutCodeRu
@CutCodeRu Ай бұрын
@@NK-kg1qv этот вопрос мы разбираем на курсе где не используем jsonresource, да и laravel data тоже
@shtthefcku
@shtthefcku Ай бұрын
Привет. Давно смотрю, во многом помог, научил. Но сегодня было тяжело слушать произношение «DTO»
Обзор Laravel Octane, Roadrunner, FrankenPHP
30:05
Просто о Laravel. CutCode
Рет қаралды 8 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 59 МЛН
When u fight over the armrest
00:41
Adam W
Рет қаралды 32 МЛН
Twin Telepathy Challenge!
00:23
Stokes Twins
Рет қаралды 116 МЛН
Кто круче, как думаешь?
00:44
МЯТНАЯ ФАНТА
Рет қаралды 6 МЛН
«Осень». Самая большая загадка Windows XP
14:36
Девять десятых
Рет қаралды 1,3 МЛН
Laracon US 2024 - что показали?
15:40
Bonch dev
Рет қаралды 532
Дайджест новостей по Symfony за октябрь
20:56
Просто о Laravel. CutCode
Рет қаралды 1,5 М.
Собеседование в ВТБ с код-ревью: Middle Java разработчик справился!
1:08:56
ШОРТКАТ — менторская программа
Рет қаралды 5 М.
PHP и Laravel дайджест новостей за октябрь 2024 года.
17:24
Просто о Laravel. CutCode
Рет қаралды 1,3 М.
Новый функционал в Laravel - ContextualAttributes
12:39
Просто о Laravel. CutCode
Рет қаралды 1,9 М.
When Cucumbers Meet PVC Pipe The Results Are Wild! 🤭
00:44
Crafty Buddy
Рет қаралды 59 МЛН