Где вы размещаете логику валидации при использовании Zend Framework? - PullRequest
2 голосов
/ 05 января 2009

Я ищу несколько примеров того, как люди реализуют логику валидации в Zend Framework.

Моя идеальная реализация - хранить проверку вне контроллера и разрешать проверку полей «Подтверждение пароля» и загрузку файлов.

Ответы [ 4 ]

5 голосов
/ 05 января 2009

Используете ли вы 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.

Для загрузки файлов вам обязательно потребуется написать собственный валидатор .

2 голосов
/ 05 января 2009

Возможно, вам стоит взглянуть на . Мэтью Вейер О'Пинни (один из разработчиков ядра Zend Fraework) демонстрирует подход, к которому нужно привыкнуть, но его стоит посмотреть.

0 голосов
/ 06 января 2009

В частности, для проверки типа «Подтверждение пароля», ознакомьтесь с Zym Framework (расширение Zend Framework). Для этого есть встроенный валидатор. Попробуйте Zym_Validate_Confirm класс.

0 голосов
/ 05 января 2009

Да, это рекомендуемый способ проверки данных. Спасибо! Я хотел бы видеть больше примеров.

Я в некотором роде фанат контроля, когда дело доходит до HTML, поэтому я стараюсь держаться подальше от Zend_Form. Я знаю, что он может быть сильно настроен, но я помню, что в какой-то момент я столкнулся с препятствиями, поэтому решил придерживаться простых HTML-форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...