我实际上正在寻找一种很好的方法来为我的所有表单元素设置通用装饰器,但同时能够非常具体地更改某些元素的一些装饰器。
说我希望我的所有元素都有新的通用装饰器。我会在我的父通用表单类的addElement
方法中执行此操作。例如,在扩展My_Form
的{{1}}类中,将扩展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
的表单时,我找不到一种方法来检查是否1装饰器(addElement
或ViewHelper
或Description
...)已被修改,以便我不会删除它。
有什么想法吗?谢谢!
答案 0 :(得分:0)
它有点短,但是......
......也许这有帮助。