Вы можете создать себе класс, который расширяет Zend_Form
и перегружает метод createElement
:
class My_Base_Form extends Zend_Form
{
public function createElement($type, $name, $options = null)
{
$element = parent::createElement($type, $name, $options);
$element->setOptions(
array('requiredSuffix'=> ' <span class="required">*</span> ')
);
$label = $element->getDecorator('Label');
if (!empty($label)) {
$label->setOption('escape', false);
}
return $element;
}
}
, а затем вы расширяете эту форму:
class My_Form extends My_Base_Form
{
public function init()
{
...
// $firstname= new Zend_Form_Element_Text('firstname'); old version
// taking advantage of the createElement
$firstname = $this->createElement('text', 'firstname');
...
}
}
Вы можетеиспользуйте этот метод для многих других вещей.В прошлом я использовал его для определения декораторов по умолчанию для всех моих элементов формы.