gpt4 book ai didi

zend-framework - 为什么使用 zend 表单装饰器而不是单独渲染?

转载 作者:行者123 更新时间:2023-12-02 02:15:44 26 4
gpt4 key购买 nike

我几乎无计可施,试图使用装饰器来设计我的 Zend 表单。以前为了避免这些问题,我会创建一个扩展 zend_form 的表单脚本,添加我需要的任何验证器、标签等,然后使用 $form->getElement('my_form_element'); 从我的 View 脚本中检索元素
这样我就可以在元素周围包裹我想要的任何 css 标签。我想我应该学习如何使用内置的装饰器,但我开始觉得这是在浪费我的时间。我的旧方法似乎更简单,有什么我没有看到的原因可以更好地使用自定义装饰器吗?

最佳答案

一般来说,装饰器用于动态添加功能,而不必触及代码的核心功能,并且可以更好地重用代码。然而,在 Zend_Form 中,我认为装饰器系统(以及一般的 Zend_Form)是不直观的,并且过度设计,所以它做的与它应该做的完全相反做:帮助开发人员更快地创建更好、更直观的代码。

在我看来,Zend_Form_Decorator 的使用仅在您有一些扩展逻辑计划在整个项目中对多种不同类型的元素重用时才有意义。

我举两个例子:

  1. 您想在任意表单元素旁边添加一个工具提示图标,该图标带有漂亮的图标和精美的 JavaScript 悬停框。
  2. 应在输入数据时直接验证元素,方法是发布 AJAX 请求并在元素旁边添加表示成功的绿色复选标记或表示失败的红色十字图标。

使用装饰器,您现在可以将添加功能的逻辑与底层元素的逻辑分开,因此您可以使用相同的代码将工具提示和/或实时验证功能添加到文本框元素以及任何其他元素只需将所有你想要的装饰器添加到元素即可。

还有一篇来自 Zend Framwork 的首席开发人员 Matthew Weier O'Phinney 的精彩文章,其中提供了一些关于使用装饰器的动机的背景见解以及大量示例:Decorators with Zend_Form

关于zend-framework - 为什么使用 zend 表单装饰器而不是单独渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com