Zend_Controller_Action_Helper_Abstract和Zend_View_Helper_Abstract之间的区别

时间:2011-02-24 14:17:40

标签: php zend-framework

我想知道Zend框架中两个帮助者Zend_Controller_Action_Helper_AbstractZend_View_Helper_Abstract之间的差异,我不明白。

2 个答案:

答案 0 :(得分:17)

就像他们的名字一样:

ActionHelper用于控制器操作所需的可重用功能,而ViewHelper用于视图模板中的可重用功能。

来自http://zendframework.com/manual/en/zend.controller.actionhelpers.html

  

Action Helpers允许开发人员将运行时和/或按需功能注入任何扩展Zend_Controller_Action的Action Controller。 Action Helpers旨在最大限度地减少扩展抽象Action Controller的必要性,以便注入通用的Action Controller功能。

来自http://zendframework.com/manual/en/zend.view.helpers.html

  

在视图脚本中,通常需要反复执行某些复杂功能:例如,格式化日期,生成表单元素或显示操作链接。您可以使用帮助程序类为您执行这些行为。

主要思想是将经常使用的功能封装到对象中,而不是重新创建该功能或使用继承(这会使基类膨胀并违反单一责任原则)。 ZF区分ViewHelpers和ActionHelpers,因为它们有不同的责任。 ActionHelpers用于帮助处理请求,而ViewHelpers用于帮助渲染模型。

答案 1 :(得分:0)

如果你的视图帮助者需要知道你的模型(使用Zend_Db_Table),那么简单的经验法则是你做错了而不是使用动作助手。动作助手可以访问preDispatch和postDispatch之类的钩子。

查看帮助程序的好处,你可以在动作控制器中使用它,例如echo $this->view->myHelper();我已经看到这个使用非常十分。