Neurons to bytes

Posts Tagged ‘Zend_Form’

Использование Zend_Form без декораторов

09.08.2009 by Ouch! - 4 Comments
Posted in программерское

Лично мне использование декораторов в формах в Zend Framework никогда не нравилось, потому что это никогда не было для меня удобным. Каждый раз, когда приходилось добавлять дополнительные элементы и разметку в довольно сложную форму, это превращалось в великую головную боль.

Кроме того, я почему-то уверен, что использование декораторов в Zend Form это не лучшее решение. В настоящей действительности все чаще приходится работать с готовой XHTML разметкой, которую предоставляет верстальщик. В таком случае, программисту приходится “переводить” уже сверстанную форму в php-код. Разве это удобно, разве это способствует продуктивности? Никак нет. Просто делается лишняя работа, вместо того, чтобы подставить в нужные места формы вывод ошибок и прочего.

Но как сделать так, чтобы наша форма сохраняла функциональность валидаторов, “зашитых” в ней, и при этом мы могли бы визуально видеть разметку формы? Как ни странно, но в этом нам поможет декоратор! Read the rest of this entry »

Почему валидация в Zend_Form это плохо, или о том, как делать правильную валидацию

08.27.2009 by Ouch! - 22 Comments
Posted in программерское

В настоящий момент Zend Framework имеет набор валидаторов, которые обычно используются для проверки входных данных из форм. Для этого используется пакет Zend_Form, отдельно же валидаторы используются достаточно редко.

Вроде бы всё хорошо, все пользуются и все довольны. Но если подумать, то в ZF валидация располагается не на том уровне, на котором хотелось бы. Я уверен, что валидация входных данных должна производиться именно в моделях и ни в коем случае не в формах, как сделано на даный момент. Почему? Остановимся на этом подробнее. Read the rest of this entry »

Zend_Form - установить собственное сообщение об ошибке

08.17.2009 by Ouch! - 0 Comment
Posted in программерское

Zend_Form - переопределение ошибок.

Иногда требуется в форме установить собственное сообщение об ошибке, когда форма проходит валидацию.

Например, мы хотим проверить, заполнено ли имя пользователя:

$username = $this->createElement('text', 'username');
$username->setRequired();

$username->addValidator('NotEmpty', false, array(
    'messages' => array(
        'isEmpty' => 'EmptyUsername'
    )
));

Видно, как в массиве сообщений мы делаем как бы алиас на нужное нам сообщение. Теперь осталось только добавить в файл с переводами строчку

'EmptyUsername' => 'Введите имя пользователя'

и при валидации, если поле будет пустое, мы увидим переопределенную нами ошибку:

Введите имя пользователя

Вот так вот.