Было несколько обсуждений относительно местоположения проверки ввода пользователя:
Нужно ли проверять объекты формы или модель?
Где вы проводите проверку? модель, контроллер или вид
Эти дискуссии были довольно давними, поэтому я хотел снова задать вопрос, чтобы посмотреть, есть ли у кого-нибудь свежая информация. Если нет, заранее прошу прощения.
Если вы пришли из Валидации в Модельном лагере - означает ли Модель ООП представление данных (т.е. Active Record / Data Mapper) как «Сущность» (заимствуя терминологию DDD) - в этом случае вы, я полагаю, хотите, чтобы все классы модели наследовали общие ограничения проверки. Или же эти правила могут быть просто частью Сервиса в Модели - то есть Сервиса Валидации? Например, не могли бы вы рассмотреть Zend_Form и его валидационные классы как часть Модели? Концепция модели предметной области, по-видимому, не ограничивается сущностями, поэтому проверка не обязательно должна ограничиваться этими сущностями.
Похоже, вам потребуется много лишней передачи значений и ответов между формами и «сущностями», и в некоторых случаях вы можете не сохранять данные, полученные из пользовательского ввода, или получать их из пользовательского ввода на всех.