Я на самом деле ищу хороший способ иметь универсальные декораторы для всех моих элементов форм, но в то же время я могу очень точно изменять некоторые декораторы некоторых элементов.
Скажем, я хочу, чтобы у всех моих элементов были новые общие декораторы. Я бы сделал это в методе addElement
моего родового класса родовой формы. Например, в My_Form
расширение класса Zend_Form
, которое будет расширено My_Form_User
, содержащим объявления фактических элементов, у меня будет что-то вроде:
public function addElement($element, $name = null, $options = null)
{
parent::addElement($element, $name, $options);
if (! is_object($element)) {
$element = $this -> getElement($name);
}
if (is_object($element))
{
$element -> clearDecorators();
$element -> addDecorators($this -> elementDecorators);
}
return $this;
}
Теперь у меня очень специфические потребности в некоторых элементах некоторых форм. Поэтому я устанавливаю эти декораторы, когда создаю элемент (в My_Form_User
классе), но, конечно, когда я добавляю их в форму с addElement
, я не могу найти способ проверить, если 1 декоратор (ViewHelper
или Description
или Label
...) был изменен, так что я не стираю его с общим.
Есть идеи? Спасибо!