Используете ли вы Zend_Form
для своих форм? Я склонен применять валидаторы в форме для каждого Zend_Form_Element
. Вот как я это делаю:
class Form_Login extends Zend_Form
{
public function init() {
$this->setMethod('post');
$validator = new Zend_Validate_Regex('([A-Za-z0-9]+)');
$validator->setMessage(
'Your username can only contain letters, numbers and underscores (_).');
$username = new Zend_Form_Element_Text('username');
$username->setLabel('Your Username');
$username->setDescription('The username you use to login');
$username->setAllowEmpty(false);
$username->setRequired(true);
$username->addValidator($validator);
$submit = new Zend_Form_Submit('login');
$submit->setLabel('Login');
$this->addElements(array($username, $submit));
}
}
( Настройка сообщений об ошибках )
А потом в вашем контроллере:
// $form is an instance of the extended Zend_Form
if (!$form->isValid()) {
$validator->getMessages()
// flashMessenger helpers or just simple view appends
}
Моя идеальная реализация - оставить проверку вне контроллера и разрешить проверку «Подтверждение пароля» полей и загрузок файлов .
Я видел упоминание о подтверждении паролей в справочном руководстве (но не могу найти их сейчас, как правило), но его легко найти в Google.
Для загрузки файлов вам обязательно потребуется написать собственный валидатор .