【发布时间】:2012-05-29 19:00:44
【问题描述】:
我几乎走到了尽头,试图使用装饰器来设计我的 Zend 表单。以前为了避免这些问题,我会创建一个扩展 zend_form 的表单脚本,添加我需要的任何验证器、标签等,然后使用 $form->getElement('my_form_element'); 从我的视图脚本中检索元素
这样我就可以在元素周围包裹我想要的任何 css 标签。我想我应该学习如何使用内置的装饰器,但我开始觉得这是在浪费我的时间。我的旧方法似乎更容易,我看不到有什么原因可以更好地使用自定义装饰器吗?
【问题讨论】:
-
不要花太多时间在装饰器上,ZF2 中有一个全新的 Zend_Form 系统,它们已经脱离了装饰器,转而使用 viewHelpers。希望它会更容易。
-
值得注意的是,如果您使用
<?= $form->getElement('my_form_element') ?>,那么您将隐式使用附加到元素本身的装饰器(如 ViewHelper、Label、Description、Errors 等)。当然,如果你更深入地挖掘元素本身的更细粒度的组件——比如$elt->getLabel()——那么你真的在避免使用装饰器。尽管如此,我发现除非我创建自定义视图助手来渲染表单元素,否则我的自定义表单渲染视图脚本中有很多重复的样板标记,否则使用装饰器会变得干燥。