@symfony_php

Страница 784 из 1418
Dmitriy
27.03.2018
14:59:56
ответ на твой вопрос - зависит от задачи
Ну так лэйзи не рак, программист - рак)

Konstantin
27.03.2018
14:59:56
мне валидация нужна пока запрос в контроллер не пришел

Konstantin
27.03.2018
15:00:08
вот для этого и нужен дто с мета инфой для валидации в аннотациях

Google
Олексій
27.03.2018
15:00:10
каким обьектом? создать обьект из пустого места?
Ну я так надеялся что оно в экшене из параметра создаст инстанс и просетит туда все что сможет согласно присутствующим пропертям в объекте.

Konstantin
27.03.2018
15:00:22
там вот удобно например именно дто а не какой то массивчик

Sergey
27.03.2018
15:00:34
мне валидация нужна пока запрос в контроллер не пришел
речь идет ТОЛЬКО о респонсах. Научись уже дочитывать сообщения. Я в первом же сообщении об этом написал. Для запросов ясное дело будут объекты.

Konstantin
27.03.2018
15:00:48
есть поговорка такая

делай безобразно но однообразно

ну или хз может не поговорка

Sergey
27.03.2018
15:01:13
ну или хз может быть эта цитата тут не к месту...

Konstantin
27.03.2018
15:01:19
кароче если уж юзаешь дто на входе - на выходе тоже дто. вполне себе спокойно можно жить

Sergey
27.03.2018
15:01:40
Konstantin
27.03.2018
15:02:01
boundaries между слоями не отменяли )

юзай массивы если нравится )

Google
Олексій
27.03.2018
15:02:18
оно добавит тебе параметр в экшн
как то не удобно это всё кучу параметров надергивать, объектом было бы удобнее. Ладно, будем искать.

Sergey
27.03.2018
15:02:23
boundaries между слоями не отменяли )
а если мы разделим между собой задачи "обработки данных" и "формирование представления"?)

потому что они разные

сможем провести границу

и теперь "единообразие" притянуто зауши

Konstantin
27.03.2018
15:03:10
т.е. хочешь сказать что передать объект в темплейтер это уже прям нарушение закона

Sergey
27.03.2018
15:03:22
это как "если мы пишем в сущность которая грузится в UoW то и читать должны тоже с испльзование UoW"

Konstantin
27.03.2018
15:03:39
дто жы не сущность

дто и есть чтобы между границами передавать

Dmitriy
27.03.2018
15:03:51
Подскажите бандл или либу, которая может валидировать JSON по JSON Schema v5?

Sergey
27.03.2018
15:04:16
я еще раз повторю - как ты хэндлишь ситуации когда у тебя есть 5 ролей и одна один.... ну например JSON и поля какие-то для каких-то ролей надо скипать

Andrey
27.03.2018
15:04:28
Bohdan
27.03.2018
15:05:18
opis кажись, я сейчас не у компа

Sergey
27.03.2018
15:05:27
Google
Konstantin
27.03.2018
15:05:33
еще накину - а graphql ты смотрел?)
да смотрел но у меня писюн еще не дорос такое реализовать

Bohdan
27.03.2018
15:05:40
Konstantin
27.03.2018
15:06:02
на выходе
т.е. вопрос про то где зачистить респонз от ненужных данных

Alan
27.03.2018
15:06:11
у сериалайзера изолирующий слой - массивчики)))

Bohdan
27.03.2018
15:06:13
https://github.com/opis/json-schema/

Dmitriy
27.03.2018
15:06:34
Opis Json Schema is a PHP implementation for json-schema draft-07 and draft-06.

?

Sergey
27.03.2018
15:06:47
у тебя будет 5 DTO или 1 DTO?

Konstantin
27.03.2018
15:06:54
т.е. вопрос к тому чтобы занулить пару полей в dto против передачи уже чистого "массивчика"

без лишних полей

Konstantin
27.03.2018
15:07:47
5 дто и аннотации

пусть сериализер разбирается

Олексій
27.03.2018
15:08:12
ParamFether твой обьект
Ок спасибо. Наверное буду им довольствоваться, но все же жаль что нельзя в кастомный объект просетить (

Sergey
27.03.2018
15:08:42
пусть сериализер разбирается
не понимаю... кто будет выбирать DTO? причем тут сериалайзер или аннотации если у тебя и так 5 DTO

Konstantin
27.03.2018
15:08:56
чего не понимаешь

сериализер превращает дто уже в респонз который отдается клиенту. хер его знает это json/xml/array понятия не имею

Vladislav
27.03.2018
15:09:20
та можно, лично я сделал свою аннотацию PaginationParams которая лжидает, валидирует filters, sorts, offset, limit и вставляет как параметры в экшн

Sergey
27.03.2018
15:09:22
чего не понимаешь
я бы хотел посмотреть как бы выглядел контроллер в такой ситуации (ну в идеале вообще код)

Google
Vladislav
27.03.2018
15:09:33
изи можно сделать чтобы был обьект. но это время и вопрос надо ли оно тебе

Sergey
27.03.2018
15:09:38
зачем сереалайзеру что-то решать?

Konstantin
27.03.2018
15:09:40
если есть дто - можно обозначить аннотации чтобы сериализер вырезал поля когда выполняется какое то условие

Sergey
27.03.2018
15:09:51
Konstantin
27.03.2018
15:09:53
затем чтобы не юзать кругом массивчики

Sergey
27.03.2018
15:10:05
затем чтобы не юзать кругом массивчики
догматическая логика какая-то

Konstantin
27.03.2018
15:10:24
а, на 5 ролей 5 дто

не, 1 дто канешно, я думал 5 на разные операции

Admin
ERROR: S client not available

Sergey
27.03.2018
15:11:05
окей, все ще - вот у тебя есть 10 полей, из них два доставать дорого по ресурсам (ну так вышло) и надо они только для админов (их мало и там пофигу)

ты предлагаешь доставать все для всех и потом чистить

как поступишь?

Konstantin
27.03.2018
15:11:58
лол

так эти поля нужны или не нужны

Sergey
27.03.2018
15:12:15
так эти поля нужны или не нужны
админам нужны - остальным нет, DTO у тебя одна

Konstantin
27.03.2018
15:12:33
если у тя код выполняет тяжелые операции независимо от того кто клиент, хотя надо только для админов - дто то тут причем

Sergey
27.03.2018
15:13:00
а у тебя с излишками

Konstantin
27.03.2018
15:13:11
так тут уже про оптимизацию

Google
Sergey
27.03.2018
15:13:18
у тебя 1 DTO

ты сам выше сказал

Konstantin
27.03.2018
15:13:22
и

Sergey
27.03.2018
15:13:23
кто заполняет данными?

кто потом будет решать какой DTO подсовывать?

`if`ы в контроллерах?

Konstantin
27.03.2018
15:13:58
ты код покажи

там поспорим )

а так че голову ломать над абстрактной выдуманой ситуацией

если будешь передавать массивчики между слоями - их хуй потом завалидируешь

на каждом шаге

а для дто это можно автоматизировать

Sergey
27.03.2018
15:15:35
вот тебе типичный код когда DTO неудобно if ($user->isAdmin()) { return $dataProvider->dataWithSomeComplexStuff(); // уже вернет тебе `DataWithCOmplexStuffDTO` } elseif ($user->isSomeOtherUser()) { return $dataProvider->dataWithLessStuff(); // уже другой тип DTO }

ну и т.д.

а для дто это можно автоматизировать
я еще не добрался до примеров когда в куче запросов фигурирует какой-нибудь профиль пользователя (часто используемые вложенные структуры) - кто данные туда будет агрегировать?

Konstantin
27.03.2018
15:16:45
зачем из метода возвращать два разных типа дто

Sergey
27.03.2018
15:16:52
+ ситуации когда у тебя респонс содержит данные из нескольких контекстов (границы и все такое) и данные надо как-то скомпоновать...

Konstantin
27.03.2018
15:16:54
почему бы не вернуть один и тот же

Sergey
27.03.2018
15:17:38
почему бы не вернуть один и тот же
тогда по сути единственная цель твоих DTO - контейнер с данными и перечень возможных полей (вообще без какой-либо возможности валидации)

Konstantin
27.03.2018
15:18:04
валидацию будет делать следующий слой, который примет данные

Sergey
27.03.2018
15:18:16
ты пойми, моя притензия не к тому что бы "выкинуть DTO" а к тому что "а может быть и не надо на каждый чих класс создавать для респонсов..."

Страница 784 из 1418