Эдуард
через модель)
Kirill
извращенец)
Эдуард
ну как бы нет
Эдуард
такой вариант валидации предусмотрен архитектурой симфони
Эдуард
и в доке официальной расписан
Эдуард
я изначально делал через форму, потому что мне тоже не нравится такое
Эдуард
но оно не заработало)
Эдуард
Эдуард
этоэже вы мне вчера подсказвыли этот метод
Kirill
final readonly class RegistrationRequestDTO { public function __construct( #[Assert\NotBlank] #[Assert\Email] // etc public string $name, public string $email, ) {} } #[Route('/register')] final readonly class ExampleController { public function __invoke(#[MapRequestPayload] RegistrationRequestDTO $req) { // do something } }
Kirill
https://symfony.com/blog/new-in-symfony-6-3-mapping-request-data-to-typed-objects
Kirill
есть же намного удобнее способы
Эдуард
это создается класс для каждого контроллера? а что он должен возращать?
Kirill
это просто чистый DTO
Эдуард
Эдуард
а методов нету при таком подходе в контроллерах?
Эдуард
это просто чистый DTO
можете пояснить?
Kirill
можете пояснить?
ну думаю так проще будет https://martinfowler.com/eaaCatalog/dataTransferObject.html
Эдуард
чето проще не стало)
Kirill
согласен
Kirill
сам прочитал, тоже такое себе
Kirill
DTO - структурированное строготипизированное key-value значение
Kirill
ты можешь передать строку, можешь число, а можешь DTO, внутри которого и строка и число
Kirill
json объект и есть DTO считай)
Kirill
только там типов нет...
Kirill
ну да пофигу
Эдуард
я чето не пойму как практически это связать
Эдуард
с валидацийе)
Kirill
так вон же ссылка
Эдуард
ну по вашей первой ссылки
Kirill
самый простой пример
Эдуард
там нету методов
Эдуард
в контроллере
Эдуард
только инвок
Kirill
ну да, один метод у контроллера
Эдуард
ну так это шляпа какаято
Kirill
это нормально даже в ларе писать)
Эдуард
а нехочу 1 метод
Kirill
ну сделай не 1
Kirill
проблем-то
Эдуард
а как сделать не 1 при такой конструкции?)
Эдуард
когад нет методов и тока инвок
Kirill
заменить инвоук на методы, не?
Kirill
не пробовал?)
Эдуард
нет)
Kirill
ну просто ты берёшься за получение данных, которое можно сделать тысячью разными способов, но при этом ещё с контроллерами и роутами не разобрался - это странно
Kirill
а тысяча разных способов, потому что есть валидатор, а дальше что угодно делай, хоть те же форм реквесты
Эдуард
тысяча способо это плохо должен быть 1 как в ларе)
Эдуард
ну пока хорошего способо валидации не нашел
Эдуард
для симфони
Kirill
так в мануале и написаны 1-2 способа совсем тупых и понятных любому
Эдуард
тока через модели но это грамоздно и не удобно
Эдуард
ну вот там написаны формы и модели)
Kirill
ну вот)
Эдуард
формы не заработали, модели грамоздко
Kirill
а то что это говно и есть варианты удобнее не написано
Эдуард
ну у меня щас через модели сделано
Kirill
а в ларке нет не то что альтернатив, зачастую там в принципе что-то невозможно сделать
Kirill
например внедрить ту же самую DTO в метод контроллера по атрибуту
Kirill
можно на $app->resolving событие подвязаться только, но так не получить сигнатуру метода (откуда атрибут прочитать надо)
Kirill
а, не, $app->resolving тоже не прокатит, т.к. это в сервис провайдере, а там нет реквеста откуда надо вытащить параметры и всунуть в объект, а если появится, то это дичь, т.к. регистрация с рантаймом смешивается
Vlad
Кстати, вопрос со вчера назрел. Почему ты сказал что шторм не развивается ака сдох?
Kirill
я поражаюсь в твоей упертости ему что-то доказать и объяснить
да потому что после ларки надо примерно год-два отходить)))
Kirill
я ж проходил это
Kirill
ломка невыносимая
Kirill
а только потом приходит просветление почему вроде как хрень сделана именно так
Kirill
и только потом понимаешь насколько ларка убога
Vlad
да потому что после ларки надо примерно год-два отходить)))
да ну и пусть отходит, если в его парадигме мира невнятные вещи ларавеля очевидней, чем атрибуты
Kirill
ну просто надо осознать, что никто не мешает создать атрибут с такой же валидацией, типа #[Assert\LaravelLike('required|string|unqie:users')]
Kirill
причём пилится такое за 10 минут
Kirill
explode('|') + explode(':') + разворот в констреинты
Kirill
ну сделай массив, проблем-то
Kirill
потом поймёшь как весело так валидировать вложенные структуры)
Vlad
Да я то чего, я ничего против симфы не имею, чтож ты!