Где разместить Zend_Forms, контроллер? Модель? Где-нибудь еще?
Где лучше всего разместить код для сборки моих Zend_Forms?
Я использовал эту логику внутри своих контроллеров, но отошел от нее после того, как мне понадобилось использовать одну и ту же форму в разных местах. Это означало, что мне пришлось дублировать создание форм на разных контроллерах.
Поэтому я переместил код создания формы в свои модели. Кажется ли это правильным, это работает для меня. Или я что-то упускаю, и они на самом деле должны пойти куда-нибудь еще?
1 ответ
Решение
Я обычно помещаю свой код построения формы в отдельные файлы, по одному файлу на форму.
Кроме того, я настраиваю Resource Autoloader, чтобы я мог загружать свои формы в мои контроллеры.
применение / формы / login.php
<?php
class Form_Login extends Zend_Form
{
public function init()
{
$this->addElement('text', 'username', array(
'filters' => array('StringTrim', 'StringToLower'),
'required' => true,
'label' => 'Username:',
));
$this->addElement('password', 'password', array(
'filters' => array('StringTrim'),
'required' => true,
'label' => 'Password:',
));
$this->addElement('submit', 'login', array(
'ignore' => true,
'label' => 'Submit',
));
}
}
В моих контроллерах:
$loginForm = new Form_Login();