Введение
Эта статья является продолжением рассуждений на тему организации модели и посвящена организации процесса валидации данных. И не смотря на то, что практическая часть выполнена на Zend Framework, приведенные рассуждения в равной степени могут быть применены к любому фреймворку и даже платформе.
Большинство данных поступает в модель из внешнего мира, через html-формы, различные сервисы, почту и т.д. При этом, всегда необходимо производить валидацию и фильтрацию этих данных, т.к. они не надежные.
Например, при поступлении данных из html-форм в Zend Framework'е удобно использовать компонент Zend_Form. Это мощный компонент, позволяющий структурировать данные, производить гибкую фильтрацию и валидацию данных, а так же имеет механизмы вывода, включая вывод ошибок валидации.
Большинство данных поступает в модель из внешнего мира, через html-формы, различные сервисы, почту и т.д. При этом, всегда необходимо производить валидацию и фильтрацию этих данных, т.к. они не надежные.
Например, при поступлении данных из html-форм в Zend Framework'е удобно использовать компонент Zend_Form. Это мощный компонент, позволяющий структурировать данные, производить гибкую фильтрацию и валидацию данных, а так же имеет механизмы вывода, включая вывод ошибок валидации.
С другой стороны, данные в модели так же должны быть всегда в валидном состоянии и не зависеть от источника поступления. Поддержание модели в корректном состоянии это обязанность как раз самой модели. На лицо дублирование функциональности.
Избежать дублирования можно, если перенести всю проверку данных в Модель. Таким образом, мы всегда сможем гарантировать, что Модель корректна, даже если данные поступают не из пользовательских форм.