New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Рефакторинг сервиса валидации #10
Comments
@foobar1643 Я думаю, что понятие "переусложненно" не должно препятствовать улучшению структуры. Как ты сказал, что это неправильно и сложно тестировать, значит нужно сделать отдельный сервис валидации. К тому же, что-то подобное я реализовывал когда писал студентов, и если бы я не писал 'casual' код, я бы выбрал именно такой способ. |
Можно примерно показать пример вызова функций. |
Есть же готовые валидаторы, например symfony/validator умеет валидировать массивы, объекты, вложенные структуры и так далее. |
Или вот попроще: https://github.com/alexgarrett/violin |
@kubk С одной стороны ты прав зачем плодить в 100 раз велосипед с другой хочется написать самому чтоб получить опыт @foobar1643 что скажешь ? |
Тут все зависит сколько времени мы готовы на это потратить. Если делать такой валидатор как я описал в тут - при полном понимании задачи это не должно занять больше чем пол дня. С другой стороны, тогда нужно будет тратить время на ревью и правки по коду, и отладку сервиса под наши задачи. Ревью результатов работы желательно чтобы проводили все люди, которые работают над проектом, для того чтобы все имели понимание о том как работает данный класс и как его использовать. Далее также нужно будет тратить время на правки и повторный разбор и обсуждение этих правок. Я не против написать свой валидатор, но в данном случае это займет слишком много времени и это того не стоит (это исключительно мое мнение, потому что свободного времени у меня не очень много). Я считаю что лучше взять уже готовый. Валидатор от симфони слишком большой, я думаю второй вариант который предложил @kubk довольно неплохой, правда я не изучал его особо. @izac1 если ты все таки хочешь написать свой чтобы получить опыт - это тоже не проблема, только наверное нужно это согласовать как-нибудь со всеми. |
Стоит отметить, что некоторым методам явно не место в классе Validator. |
Закрываю, чтобы не сбивать новых людей с толку. В слаке обсуждали возможный переход на SF4, который по своей сути тоже микрофреймворк, поэтому будем использовать компоненты симфони. |
Сейчас вся валидация происходит прямо в сервисах, сначала идут проверки на существование элемента в теле POST запроса, а затем статическим методом происходит валидация типов. Это неправильно и сложно тестировать. Нужно сделать отдельный сервис валидации:
Когда цикл заканчивается, возвращаем массив вида [имя_поля => сообщение_об_ошибке], или пустой массив если все хорошо.
@someApprentice отпиши что думаешь, не слишком ли переусложненно?
The text was updated successfully, but these errors were encountered: