Аналогично, сижу гуглю. Везде ответ формата ну это такая штука которая лежит в промежутке между сущностью и фронтом. Там все изи. А если я скажу что сварные работы это изи, вы тоже все поймете и сможете варить?
это обычный объект в котором есть свойства(поля), ты подаешь на конструктор значения, которые сетятся эти поля, дальше ты эту дто отправляешь с контроллера на логический слой, где через гетеры вытаскиваются эти свойства и дальше происходит бизнес логика и тп. Все достаточно просто
@@rulonoboev2851 а передать параметры объекта из контроллера в сервис не сетя его в одну сущность можно как-то иначе? Это же и получается простой POJO класс, в чём особенность такого подхода? Я просто не догоняю что-то)
Жалко что не затронули использование DTO в REST API - там оно нужно как воздух, чтобы при изменении внутреннего представления данных на сервере у клиентов API ничего не сломалось
Допиши видос пожалуйста, простой пример перемещения данных из одной части в другую, с помощью DTO. Не надо расписывать целый проект, просто показать именно это действие, как, что, где писать.
Ну так можно же захардкодить валидацию и массива который мы передаём в функцию. Типа проверка и типов массива и тд. Все равно не понял что за Dto и зачем оно нужно.
Для валидации входных данных от например фронта используются специальные валидаторы. Это не подходит. Это нужно для отсечения лишних/конфиденциальных данных что приходят например из БД.
хороший вопрос! Entity это то что в итоге мы будем хранить в системе. 1 case заполнять данными entity из контроллера не верно так как это может привести к уязвимости - по этой причине часто используют DTO объект между Controllers Services. 2 case - не всегда нам нужны все данные из entity для User Interface и на оборот нам нужны данные из нескольких Entity одновременно для работы какого-то сервиса. т e в наших сервисах мы не всегда (почти никогда) будем работать только с entities - по этой причине часто используется DTO - произвольный набор данных которые нам нужны не зависищей от Entities
@@livecodingschool8906 понял. Не могу справиться с одним таском. Нужно создать кастомные связи на фреймворке ларавел через несколько таблиц и у таблиц есть промежуточные таблицы. И куча разных параметров типа, если категория имеет нужный нам статус. Средствами пхп делать это не очень ибо объем данных большой. Можешь подсказать как правильно создать такие отношения?
@@SokratForever здесь подсказать конечно достаточно сложно так много деталей которые не известны. а просто объединить все в один запрос при помощи joins не получается ?
@@livecodingschool8906не получается нормальный запрос написать. Такая схема: Brands -> models-> engine_models->engine_model_product->products->group_product->groups Мне нужно взять группы. Я застрял на продуктах. Написал запрос с несколькими джоинами получаю продукты по каждой модели. То есть, у одной модели (engine_model) несколько продуктов. И я получаю дубликаты этих продуктов. Модели 3 имеет продукты с идентификаторами 7,12,15 и модель 20 имеет продукты с этими же идентификаторами (7, 12, 18). Значит я получу продукты с идентификаторами 7,7,12,12,15,18. Продукты повторяются
Почему нет ни где примеров? Все говорят что это просто, но нет ни у кого примеров.
Потому что ты "нигде" пишешь раздельно
Аналогично, сижу гуглю. Везде ответ формата ну это такая штука которая лежит в промежутке между сущностью и фронтом. Там все изи. А если я скажу что сварные работы это изи, вы тоже все поймете и сможете варить?
это обычный объект в котором есть свойства(поля), ты подаешь на конструктор значения, которые сетятся эти поля, дальше ты эту дто отправляешь с контроллера на логический слой, где через гетеры вытаскиваются эти свойства и дальше происходит бизнес логика и тп. Все достаточно просто
@@rulonoboev2851 а передать параметры объекта из контроллера в сервис не сетя его в одну сущность можно как-то иначе? Это же и получается простой POJO класс, в чём особенность такого подхода? Я просто не догоняю что-то)
Жалко что не затронули использование DTO в REST API - там оно нужно как воздух, чтобы при изменении внутреннего представления данных на сервере у клиентов API ничего не сломалось
Допиши видос пожалуйста, простой пример перемещения данных из одной части в другую, с помощью DTO. Не надо расписывать целый проект, просто показать именно это действие, как, что, где писать.
Для отсечения лишних данных что приходят из например БД.
Именно посмотрев ваше видео понял что такое DTO и зачем оно нужно, спасибо) Но желательно было привести простой пример на базе любого фреймворка.
Ну так можно же захардкодить валидацию и массива который мы передаём в функцию. Типа проверка и типов массива и тд. Все равно не понял что за Dto и зачем оно нужно.
Спасибо, очень просто и доходчиво!
благодарю
Начало вроде по делу, но затем какая-то муть...
благодарю за обратную связь - был бы рад узнать в чем муть ?
@@livecodingschool8906 я думаю сухая теория по сути и есть муть
@@livecodingschool8906 Примера не хватает
Супер! Просто и понятно)
А валидация данных может быть внутри ДТО? Мы ведь не знаем, что пришло в массиве или реквесте. Как минимум, должна быть проверка на наличие и тип
Для валидации входных данных от например фронта используются специальные валидаторы. Это не подходит. Это нужно для отсечения лишних/конфиденциальных данных что приходят например из БД.
Да можно с помощью декораторов например в typescripte
@@diatm1506 то уже детали. Вопрос был в том, не изменится ли название паттерна, если добавить валидацию
@@agnar878 сорян значит я невнимательно прочёл
про связь между DTO и массивом вообще ничего не понял
идеально обьяснил, а главное быстро
Спасибо!
Спасибо братик, кратко понятно!
а по моему просто и доходчиво, лайк!
2:53 - а можно уточнение? А разве методы в объекте - это не логика?
под методами имею ввиду гетеры и сетеры, под отсутствием логики - имеется ввиду бизнес логика
Нужно показать пару примеров
А чем DTO отличаеться от Entity?
хороший вопрос! Entity это то что в итоге мы будем хранить в системе. 1 case заполнять данными entity из контроллера не верно так как это может привести к уязвимости - по этой причине часто используют DTO объект между Controllers Services. 2 case - не всегда нам нужны все данные из entity для User Interface и на оборот нам нужны данные из нескольких Entity одновременно для работы какого-то сервиса. т e в наших сервисах мы не всегда (почти никогда) будем работать только с entities - по этой причине часто используется DTO - произвольный набор данных которые нам нужны не зависищей от Entities
@@livecodingschool8906 понял. Не могу справиться с одним таском. Нужно создать кастомные связи на фреймворке ларавел через несколько таблиц и у таблиц есть промежуточные таблицы. И куча разных параметров типа, если категория имеет нужный нам статус. Средствами пхп делать это не очень ибо объем данных большой. Можешь подсказать как правильно создать такие отношения?
@@SokratForever здесь подсказать конечно достаточно сложно так много деталей которые не известны. а просто объединить все в один запрос при помощи joins не получается ?
@@livecodingschool8906не получается нормальный запрос написать.
Такая схема:
Brands -> models-> engine_models->engine_model_product->products->group_product->groups
Мне нужно взять группы.
Я застрял на продуктах. Написал запрос с несколькими джоинами получаю продукты по каждой модели. То есть, у одной модели (engine_model) несколько продуктов. И я получаю дубликаты этих продуктов. Модели 3 имеет продукты с идентификаторами 7,12,15 и модель 20 имеет продукты с этими же идентификаторами (7, 12, 18). Значит я получу продукты с идентификаторами 7,7,12,12,15,18. Продукты повторяются
продукты с одинаковыми id это одни и те же продукты? тогда можно использовать DISTINCT и дуближа не будет www.w3schools.com/sql/sql_distinct.asp
лучше б показал как создавать и использовать
spasibo
Лайк, но многовато заиканий
спасибо, буду работать на подачей
interesting info thank you!
а можно просто параметром передать объект
оно так и делается
Воду налил лол