Nikolay
A
в доке подсмотрел https://symfony.ru/doc/current/reference/constraints/Callback.html
Nikolay
A
A
Nikolay
Nikolay
A
В дто
есть какие-то примеры? ссылки?)
не совсем представляю, как это выглядит.
т.е. поля сущности в отдельную дто, туда валидацию, а потом сама дто внутри сущности будет?
Ivan
Имхо такая валидация уже внутри сервиса, который будет отрабатывать этот кейс
Nikolay
Konstantin
A
Мой кейс:
Форма регистрации пользователя,
сделана на основе обычных форм, форма привязана к сущности пользователя.
При регистрации, необходимо проверить EMAIL в произвольном блок-листе, и вывести сообщение.
Konstantin
в идеале атрибуты Assert надо вешать не на сущность, а на дто (форм-модель)
Konstantin
но в любом случае, это надо писать за пределами сущности, она не про то, чтобы делать запросы во внешние сервисы и все такое
Иван
Иван
а валидаторы, которые вешаются на дто, могут что угодно проверять и разные сервисы инжектить
не только банальный синтаксис по регулярке
A
A
Иван
только более сложные валидаторы вешаются прямо на команду
Иван
какое полезное я сделал тестовое задание
раз 10 уже кидаю
Nikolay
Прямо атрибутами валидация дто, интересно получилось
Иван
а вызов валидации в миддлваре
Иван
Nikolay
A
понял, спасибо всем
Nikolay
Это чтобы не дергать validator.validate в каждом контроллере
Иван
Nikolay
Nikolay
или в хендлере
А все таки где предпочтительнее валидацию делать в контроллере или хэндлере?
Иван
но в миддлваре ещё лучше
Иван
либо через стек миддлвари, либо через абстрактного предка хендлеров, с жёстким сценарием, писать вызов валидатора каждый раз - потенциально забыть и пропустить
Nikolay
Иван
ага, и тестировать проще
Иван
если 'messenger.middleware.doctrine_transaction', в тестовом окружении пропускать
Nikolay
Такой риторический вопрос, что то в доке симфони антипаттерны встречаются местами
Иван
ну не надо так строго, мы все идём по этой дороге впервые
и правильную архитектуру нащупываем вместе
Иван
просто надо понимать, что в самых раскрученных книгах не истина в последней инстанции
Nikolay
Nikolay
Konstantin
примеры - это самые базовые штуки. вам показали пример коллбек-ассерта, а вы им внешние сервисы дергаете
Konstantin
вроде это не проблемы симфони :)
Nikolay
Konstantin
я про его кишки исключительно
Роман
я про его кишки исключительно
Это уже другая сторона медали. Костыль из костылей и лапши - такое в любых фреймворках/цмс и библиотеках хватает...
Юра
Кеш это просто способ оптимизировать приложение. Причем тут костыли?
Роман
Кеш это просто способ оптимизировать приложение. Причем тут костыли?
Оптимизированное приложение должно работать нормально в рантайме без кэша (за исключением единичных специфических случаев).
Если руководствоваться этим правилом, то как-то все лучше начинает работать.
А вот создание кэша любого уровня над приложением - это признак того, что в приложении что-то не так. Соответственно, кэш является костылем...
Это лично мое мнение, никому его не навязываю.
Иван
Иван
потому что кеш - часть оптимизации приложения
Иван
классический пример - кеш готовой страницы с кештегами
или мы смотрим в быстрые хранилища и отдаём готовый результат или перерендериваем вообще всё
Иван
в том числе данные из дорогих по времени доступа внешних источников
Роман
Nikolay
Роман
Иван
или дашбоард статистики за день/неделю/месяц
Роман
Nikolay
За такое.)
Ничего непонятно, но очень интересно
Роман
Юра
Ты используешь кеш? Несите сюда рукоотрыватель! )
Юра
В любом хайлоаде есть кеш
Роман
Юра
И это просто необходимость
Иван
кстати, а индексы в базе - это ж тоже кеш такой
Юра
Просто способ сохранить такты процессора
Иван
нахер индексы
Nikolay
Юра
Юра
Это быстрый доступ, но его не нужно инвалидировать значит не кеш
Юра
Браузеры кешируют статику. Так что почти все )
Роман
Роман
Иван