Null
> в каком каталое > облака
Vlad
Все так
Андрей
Иначе var/storage какой-нибудь
С проверками. Тогда этот вариант, спасибо!
Null
Все так
Все гвозди своим микроскопом перегнул, ну.
Vlad
Почему? Предлагаешь локально сейвить документы? Рано или поздно прийдут к s3
Миша
То есть контроллер вызывает сервис-респондер? Этакий самообман на тему анемичности контроллера.
Может быть и так. Но иногда пригождается. Например чтобы напрямую вызвать респондер, когда его ответ нужен как часть ответа другой ЭП.
Null
Самое лучшее применение "респондеров", которое я видел - это берем короче, забиваем на сериалайзеры и делаем response dto ручками.
Null
Действительно. Нафига группы, кастомные нормалайзеры. Можно же свое скидать!
Vlad
на респонсе нафиг эти seriliazer не нужны
Null
:D
Vlad
а вот на реквесте они удобны
Null
Ты сериалайзинг с десериалайзингом не путай
Vlad
ну серализер же работает в 2 стророны
Vlad
так что ничего не спутал
Dmitriy
и на респонс отлично сериалайзер работает
Dmitriy
причем можно автоматизировать, твой контроллер будет принимать уже валидный объект ДТО и отдавать тоже объект ДТО
Vlad
в чем проблема отдать new JsonResponse($view) ?
Vlad
а вот если xml отдавать, то тут да без serializer никак
Null
в чем проблема отдать new JsonResponse($view) ?
А можно короче отдавать json(тут гора всяких объектов) и не парить себе до этого голову. Сериализуется на отличненько.
Миша
Если сразу json отдавать то если потом захочется сделать повторное использование то придётся рефакторить, заносить код в какой-то метод, который возвращает не-json.
Vlad
что ты хочешь повторно использовать?
Vlad
контроллер?
Миша
То что контроллер получает
Vlad
$view = $handler->ask(...)
Vlad
return new JsonReponse($view);
Null
Вьюхи какие то.
Vlad
объектит или коллекция пуская будет
Миша
return new JsonReponse($view);
а где эти: $view = $handler->ask(...) и return new JsonReponse($view); должны находится?
Dmitriy
и зачем этот оверхед?
Какой еще оверхед? Это уменьшение болерплейт кода, нафига писать одно и тоже, когда можно автоматизировать
Null
Что-то мне подсказывает что вьюхи это костыльный сериалайзер
Null
Я размечаю сущность группами. Например типа admin. И потом везде в контексте сообщаю что нужно слепить представление именно с такими пропами.
Vlad
Какой еще оверхед? Это уменьшение болерплейт кода, нафига писать одно и тоже, когда можно автоматизировать
твой объект должен пройти все нормализеры и пропертиакцесооры и плюс еще рефлексия
Vlad
нихуя себе блять нету оверехеда
Null
А, вы таки на калькуляторах сервитесь. Мое сожаление
Dmitriy
пфф, запрос в БД больше жрет
Vlad
которую сложно контроллировать еще
Null
Хренагия. Не нравится магия автовайришь нормалайзер и руками его вызываешь
Vlad
легче описать вьюшку/дтошку
Vlad
и сразу видно что уходит
Null
Уходит мое время, когда я вижу код с респондерами 😂
Vlad
ну реально, это надо держать в голове, что при какой группе что вылетит
Vlad
зачем это дрочь не понятно
Null
> держать в голове. Берёшь короче группы константами хранишь. И передаешь в контекст тоже ими. И вуа ля. Открывая сущность видно что где вылетит.
Vlad
ну то есть серавно в голове держать
Dmitriy
Null
На вход что то, на выход дто
Vlad
> держать в голове. Берёшь короче группы константами хранишь. И передаешь в контекст тоже ими. И вуа ля. Открывая сущность видно что где вылетит.
и второй же вопрос. Зачем мне сущность? мне нужны n полей, будешь доставать полностью сущность?и потом вешать группы
Null
О нет. Партиалы всё-таки отменили?
Null
Вообще, занятно, когда про оверхед речь заходит. С большими объёмами данных работает не так много людей, в целом. Но аргументы всегда - большие выборки, оверхед
Null
ага в помойку
Ну. Когда посложнее ага. Выбираешь сразу в дто. И сериалайхеру кормишь.
Null
Где в этой схеме твой костыль респондер?
Vlad
а причем здесь вьюха? собираю resultSetMapping
Vlad
и
Vlad
new Foo(...$results)
Null
Покежь коротенький пример своих респондеров. Шоб я прям передумал и согласился, что это круто!
Vlad
вьюхи чтоле
Vlad
class с readonly полями
Vlad
все больше там ничего нету
Null
Что обьектит?
Vlad
м?
The Ant
Кто нить писал мультиязычные приложения? Вопрос такой, как резолвить выбор языка юзером? в плане. можно конечно написать класс, который это делает, но не охота тащить эту зависимость везде, где надо языки юзать. Думаю сделать функцию, но опять же, где её хранить? Какие еще варианты есть?
The Ant
приложения не только с авторизованными пользователями. т.е. язык будет либо в куке, либо в сессии, или там и там
Юра
В ивент листенере
Павел
А, вы таки на калькуляторах сервитесь. Мое сожаление
На больших респонсах сериалайзер сильно жрет,банально проходка. Как то перепутал, засунул массив в сериалайзер вместо просто в jsonRespose - разница в разы шла.
Null
На больших респонсах сериалайзер сильно жрет,банально проходка. Как то перепутал, засунул массив в сериалайзер вместо просто в jsonRespose - разница в разы шла.
На БОЛЬШИХ респонсах надо отказываться от гидраций, сериалайзинга и прочего. Но это ведь не значит, что везде так надо.
Павел
На БОЛЬШИХ респонсах надо отказываться от гидраций, сериалайзинга и прочего. Но это ведь не значит, что везде так надо.
Ну понятно что живут проекты и на сериалайзере с лэзи лоадом с 100 запросами в БД за раз и норм. Но решение не совсем удачное. Где нить мб для готовых решений, чтобы быстренько изменить респонс, да. А так... путь близкий в никуда, который надо потом менять.
Dmitriy
Ну где надо поменяем, когда начнутся проблемы
Dmitriy
Не вижу вообще проблем
Null
Ага. Частая проблема. Стелим солому там, где не надо.
Ivan
А кто как делит разные api в Symfony? Например frontend-api, service-api, backend-api, у которых как бы единая база данных, как и кодовая база. Сейчас просто разделяю на уровне routes, прописывая разные папки контроллеров и назначаю хосты., каждому по своему firewall, но может я совсем что-то не то делаю?)
Dmitriy
А зачем разделение? Что за проблему решает разделение
Павел
Ну где надо поменяем, когда начнутся проблемы
А какой профит вообще изначальный? Пишутся отдельные классы нормалайзеры, настраиваются группы разные, пишутся запросы с отдельным егар лоадингом, связываются сущности чисто для рида. Я просто сколько не сталкивался с номалайзерами, которые наичнали писать до меня - обычно это приносит как проблемы с производительностью, так и объем работы +- такой же.
Ivan
А зачем разделение? Что за проблему решает разделение
Разное назначение, frontend доступен всем, service для межсервисного взаимодействия, backend для некой админки, и так проще разграничивать функционал