Где разместить Zend_Forms, контроллер? Модель? Где-нибудь еще? - PullRequest
2 голосов
/ 02 сентября 2010

Где лучше всего разместить код для сборки моих Zend_Forms?

Раньше я помещал эту логику в свои контроллеры, но отошел от нее после того, как мне нужно было использовать одну и ту же форму в разных местах. Это означало, что мне пришлось дублировать создание форм на разных контроллерах.

Итак, я переместил код создания формы в мои Модели. Кажется ли это правильным, это работает для меня. Или я что-то упускаю, и они действительно должны пойти куда-то еще?

1 Ответ

5 голосов
/ 02 сентября 2010

Я обычно помещаю свой код построения формы в отдельные файлы, по одному файлу на форму.
Кроме того, я настраиваю 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();
...