The Ant
Я не увидел слова Validator в классе
Есть мнение, называть классы тем, что они делают. Суффиксы ор, ер типа моветон. Слышал про такое? Теперь посмотри на папочку, в которой это лежит. Стало понятней?
Павел
Павел
Опять таки, в его названии глагол, а хорошее название класса - существительное
The Ant
The Ant
Допустим, если там 2+ реализации внутри.
Павел
Опять таки :
AnnotationValidator
OtherFrameWorkValidator
AttributeValidator
The Ant
Если я так сделал, значит нужно. Не?
The Ant
Так. я заебался оправдываться. Вот тебе задача. Надо валидировать дто. В некоторых случаях надо ошибки отдавать с группировкой по полям, в некоторых просто список ошибок текстом. Предлагай реализацию
Пилот
Тут из FromRequest заполняется Command? Не юзал атрибуты, там можно так дтошки/команды заполнять?
Пилот
И юзать типа как кастомные laravel-like FooBarRequest инжектируемые через argumentresolver в контроллер с эксепшеном если реквест не провалидировался?
Павел
The Ant
Павел
Павел
Зачем тебе вообще 2 отображения ошибок?
Пилот
Пилот
Но это мелочь
Павел
Павел
Классы - не глаголы
Konstantin
не глаголы, да, но worker - это не глагол
Konstantin
это вполне себе существительное
Павел
Пилот
Ну да, методы глаголы у идеале. Но фактор методы fromFoo, fromBar тоже ведь не глаголы) хотя тут просто упускается createFromFoo/createFromBar
Konstantin
то есть почему -or/-er плохо-то?
The Ant
Классы - не глаголы
Не истина в последней инстанции. Когда навешаешь на 1 ивент штук 20 хендлеров, потом будешь рассказывать как называть
Пилот
Konstantin
сорян тогда, сплю уже одним глазом
Павел
Пилот
Don't Create Objects That End With -ER
https://www.yegor256.com/2015/03/09/objects-end-with-er.html
Пилот
А ля такого плана есть мнения)
Konstantin
ахаха бугаенко нет, пожалуйста
Пилот
Дада) но в целом дискашенв есть и на других ресурсах вроде типа реддита и стака, но хз) за шо купил, так сказать, за то и продаю))
Konstantin
этот чувак - клоун, который несет ахинею ради репостов, в серьезном обществе этого дурачка упоминать - моветон. я то есть без капли личной неприязни, просто у чувака такой образ, что он несет прям ахинею, как в передаче малахова, лишь бы все почаще крутили у виска при его упоминании
The Ant
А потом и остальное начнёшь называть на понятном языке, а не набором слов
Павел
@theantt Если брать конкретно симфони, можно сделать два ErrorResponse (название придумай) и в них класть ошибки и по разному нормализовать. Т.е. это как раз view класс.
Павел
Но и если без симфони, надо разделять валидацию и отоюражение. Да и через di тащить не обязательно
Павел
Konstantin
да нормального у него названо, это два хелпера, которые один формат массива кладут в другой, как блин их ещё называть-то
Пилот
этот чувак - клоун, который несет ахинею ради репостов, в серьезном обществе этого дурачка упоминать - моветон. я то есть без капли личной неприязни, просто у чувака такой образ, что он несет прям ахинею, как в передаче малахова, лишь бы все почаще крутили у виска при его упоминании
Понял) ну в целом именовать все как UserManager, UserQueryManager, как и UserService, UserCompanySrrvice, мб обезличенно и излишне
Павел
The Ant
Пилот
The Ant
The Ant
Павел
Как?
Что они должны возвратить? Без внутренней реализации
The Ant
The Ant
Павел
The Ant
Выше уже написано же
The Ant
Раз пять написал, а ты не читаешь )
Павел
В некоторых случаях надо ошибки отдавать с группировкой по полям, в некоторых просто список ошибок текстом.
Ок ща
The Ant
Где у тебя тут валидация и ответ с ошибками? В аргумент ресолвер поди засунул?
Павел
Ну смотри, это не может быть декоратор, так как ты возвращаешь разные типы. Например валидатор возвращает некий результат (массив или класс) и его надо преобразовать в разные виды. Это ближе к паттеру мост, что как раз в MVC, есть данные, а есть View.
Т.е. я или бы предложил как выше, сделать несколько классов ErrorResponse, Например StringValidateResponse, ArrayValidateResponse, (Можешь назвать по другому) и их создавать в контроллерах. Они оба принимают ошибки валидатора, а не сам валидтор. Или же Сделать какие то Трансформеры, как ты это и делал. Но как ты и сказал, 2 класса в DI для валидатора - не очень.
Короче главное - это название нихера не понятное. Ну и не декоратор.
Кирилл
А можно вопрос. В чем суть этого?
Konstantin
автору кажется что это круто выглядит 🙂
Павел
Павел
Кирилл
The Ant
Павел
Пилот
Пилот
По аналогии как устроено в ларавел
Пилот
Правда там нет заполнения команд)
Павел
Правда там нет заполнения команд)
Почему, там же реквест заполнен массивом и отвалидирован правилами. Очень похоже да, но в ларавеле есть базовый класс привязанный к http