Как видно из названия, у меня есть вопрос, касающийся декораторов в Zend Framework. Пожалуйста, рассмотрите следующий пример кода:
$this->addElement('select', 'DisplayUntil', array(
'label' => 'Display until:',
'multiOptions' => $this->getOptions(),
'filters' => array(
'HTMLEntities',
'StringTrim',
),
'validators' => array(
'Int',
),
));
Это мой предпочтительный метод добавления элементов в форму. Пытаясь установить лучшие практики, я стандартизировал использование фабричных методов, а не цепочку методов. Зачем? Лично я нахожу это намного более читабельным, и это сокращает длину моего пользовательского класса формы, то есть меньше кода. Приведенный выше пример прекрасно работает, однако мне трудно найти документацию или примеры, в которых тот же метод используется для добавления декораторов. Поэтому, используя тот же фрагмент кода, я предполагал, что при добавлении декораторов вы сделаете следующее:
$this->addElement('select', 'DisplayUntil', array(
'label' => 'Display until:',
'multiOptions' => $this->getOptions(),
'filters' => array(
'HTMLEntities',
'StringTrim',
),
'validators' => array(
'Int',
),
'decorators' => array(
'ViewHelper',
'Label' => array(
'tag' => 'dt'
),
'HtmlTag' => array(
'tag' => 'div',
'openOnly' => true,
'id' => 'divDisplayUntil',
'placement' => 'prepend',
),
),
));
К сожалению, я получаю сообщение об ошибке «Плагин с именем« Dt »не найден в реестре; используются пути: Zend_Form_Decorator_: Zend / Form / Decorator /». Я довольно новичок в Zend, и я был бы признателен, если бы кто-нибудь показал мне, как заставить работать предыдущий пример кода? Этот метод вообще возможен?
Спасибо!