Гы
Нео, формы нет! (С) httpxhtmlcssphpjavascriptматрица
Точнее есть нечто в браузере. На сервер же приходит http запрос в котором нет формы. А раз нет формы, то её нельзя валидировать.
Но на стороне сервера возможно есть кусок кода для обработки данных - Модель этих данных. Она накладывает требования на данные. Далее эта модель, а точнее какие-то её составляющие могут быть представлены в виде html кода, который возможно и будет отображён в браузере как форма, а может как и таблица или изображение. На сервере нет формы, хотя и есть Вид (View), который определяет способ отображения данных в браузере (например, На сервере произошла ошибка!).
Низкий и тупой способ абстракции - это строить модель данных на основе отображения в браузере. Другой способ - это строить её как правильно и отображать как нужно. Первый - это, например, работа с формами. Второй, например, работа с пользователями, их акаунтами и т. д.
Единственное место правильной валидации формы - это браузер. Есть форма - есть и валидация.
Мы же на сервере, и значит формы нет. Есть request. Форма не может дать больше для Модели, чем реквест и её искусственное создание до отображения может иметь только один смысл. Этот смысл в связать её с моделью для получения из модели данных, но никак не предоставления этих данных самой Модели и валидации их перед этим. И лучше самой модели никто не разбирается в данных.
И ещё. Да можно и нужно писать валидаторы, но как рефакторинг. А значит стоит начинать с if. У вас точно накопиться набор чего-то своего универсального. Вопрос в другом, нужно ли это другим? И стоит ли из этого делать фетиш?
