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

แชร์
ฝัง
  • เผยแพร่เมื่อ 17 ม.ค. 2025

ความคิดเห็น • 20

  • @Ilya-Co-Founder
    @Ilya-Co-Founder 3 หลายเดือนก่อน +3

    Я юзаю для ответов джейсонресурси а для бизнеслогиги дто. И кайфую 😊
    За видос спасибо

    • @murchenko99
      @murchenko99 3 หลายเดือนก่อน

      я тоже, но вот как раз начинаются проблемы когда нужно что-то в ресурсах делать этих. теперь задумался и на ответы DTOхи делать вместо ресурсов

  • @web_tj
    @web_tj 3 หลายเดือนก่อน +1

    Спасибо за ролик!

  • @KDenisG
    @KDenisG 3 หลายเดือนก่อน +2

    У ДТО есть ответственность, типизировать данные при передаче их между слоями, не писать в них бизнес логику, не валидировать, не делать респонс. Если фреймворк рекомендует что-то, то наверно не просто так, наверно чтобы была преемственность и проекты на ларавел не превращались в мусорку. Но есть учители, которые навязывают свое субъективное мнение

    • @CutCodeRu
      @CutCodeRu  3 หลายเดือนก่อน

      @@KDenisG наверно)

    • @mihaivanov8569
      @mihaivanov8569 3 หลายเดือนก่อน

      Обожаю челов, которые недавно узнали за солид и с умным видом пытаются нести ахинею. То есть, если мы декомпозируем dto на отдельные классы валидации и отдельные коассы типизации параметров, то мусора меньше станет?
      Мне кажется наоборот его больше станет, это ненужное усложнение только усложняет отлаживание кода в будущем

    • @KDenisG
      @KDenisG 3 หลายเดือนก่อน +3

      ​@@mihaivanov8569 Милый мой хороший, мне глубоко индифферентно кого ты там обожаешь, ты улови суть, если разрабы php не будут следовать нотации хотя бы внутри одного фреймворка, то языку не выйти на уровень доверия даже питона или js. А конкретно ты можешь писать, как угодно и что угодно, не жалко

    • @emris_merlin
      @emris_merlin 2 หลายเดือนก่อน

      ​@@mihaivanov8569 dto это просто чтобы представить данные из одного вида в другой. Валидацию нужно делать отдельно до передачи в dto. Если писать в одном классе, то со временем превратится в большую проблему

  • @mclotos
    @mclotos 3 หลายเดือนก่อน +5

    Так если у тебя DTO, то какая тебе разница что там на слое фреймворка или в базе данных происходит. По сути, ты можешь даже выкинуть лару и код бизнес-процессов запустить в другом фреймворке или вообще без фреймворка.

    • @CutCodeRu
      @CutCodeRu  3 หลายเดือนก่อน

      @@mclotos так точно

    • @mishafomin3973
      @mishafomin3973 3 หลายเดือนก่อน

      Так а как лучше на ваше мнение? Чисто дто или чтоб дто имплементил или екстендил какой-то полезный класс с плюшками из ларавельных?

    • @mclotos
      @mclotos 3 หลายเดือนก่อน

      @@mishafomin3973 Data Transfer Object должен передавать данные между слоями приложения. Разные слои приложения могут быть написано по-разному и работать с разными наборами данных, а задача DTO как раз в том, чтобы подружить слой бизнес-логики со слоем фреймворка, передавая данные между ними. По сти это эволюция паттернов Прокси, Адаптер и может даже Фасад (но это не точно). Будет ли он использовать ORM или QueryBuilder не так важно. Важно, что он отвязывает структуру сущности бизнес-процесса от ее структуры хранения в базе.
      Не знаю как проще это объяснить

    • @NK-kg1qv
      @NK-kg1qv 3 หลายเดือนก่อน

      ​@@mclotos Должно, но не обязано) Как часто вам приходилось менять базу данных, ORM за время работы?
      P.S. сам я использую DTO только для того, чтобы сгруппировать несколько параметров для сервис-класса, а на выходе уже идет модель

    • @mclotos
      @mclotos 3 หลายเดือนก่อน

      @@NK-kg1qv ну у меня есть несколько компонентов проекта, которые пару раз переезжали на другой фреймворк. Просто они очень древние)
      ну и я не говорю о смене бд, а только о смене структур - поля переезжают из таблицы в таблицу, связи меняются, но это не должно влиять на БП

  • @Seraf_
    @Seraf_ 3 หลายเดือนก่อน +1

    Если есть, значит можно использовать. В чем проблема? Куча методов на фильтрацию атрибута в ресурсе это плохо?

    • @CutCodeRu
      @CutCodeRu  3 หลายเดือนก่อน

      @@Seraf_ используйте, кто ж мешает) я не использую а позицию обьяснил

  • @NK-kg1qv
    @NK-kg1qv 3 หลายเดือนก่อน +1

    Видео полезное, но не отвечает на вопрос "А что, если не JsonResource" ?
    Какая альтернатива по архитектуре?
    Ведь зачастую бывает так, что то, что приходит и возвращается из Service-слоя не совпадает с тем, что нужно отправить обратно.
    Как назвать такие слои и как организовать структуру папок?
    Я пока использую JsonResource именно для возврата на Frontend данные, но все чаще приходит на ум вернуть обычный массив.
    По Laravel-Data как-то слабовато. Там есть и Paginate, и урезанный Dto(вместо Data, отличия в трейтах только), и трейты, которые добавляют функционал.

    • @CutCodeRu
      @CutCodeRu  3 หลายเดือนก่อน

      @@NK-kg1qv этот вопрос мы разбираем на курсе где не используем jsonresource, да и laravel data тоже

  • @shtthefcku
    @shtthefcku 3 หลายเดือนก่อน

    Привет. Давно смотрю, во многом помог, научил. Но сегодня было тяжело слушать произношение «DTO»