【发布时间】:2012-03-21 09:54:59
【问题描述】:
目前我正在使用视图助手来帮助我的调试过程。基本上我调用这个函数,它检查是否 1:我通过检查 Zend_Session_Namespace 变量作为开发人员登录,以及 2:应用程序是否使用 Zend_Registry 在 debug_mode 下运行。如果它们都为真,我将显示许多不同的调试变量和任何参数,我将帮助器作为输入。
最初这个函数只是为了检查我在分配给视图的对象中是否获得了正确的信息,但我很快发现它在其他地方也很有用。目前该函数在使用 $this->view 的控制器中工作,我想我可以在技术上使用 new Zend_View();或 Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');在我的模型中获得一个视图对象,但即使它只是用于调试,这也很丑陋。
所以我的问题是:我怎样才能将这个助手重建成一个全局函数(可用于模型、视图和控制器)并且仍然能够使用 Zend_Session_Namespace 和 Zend_Registry 对象,同时(尽可能)维护 MVC 结构.
【问题讨论】:
-
"Action Helpers 允许开发人员将运行时和/或按需功能注入任何扩展 Zend_Controller_Action 的 Action Controller" 我的控制器扩展 Zend_Controller_Action 但我的视图和模型没有,所以这将迫使我编写至少有两个相同函数的副本。
-
不,如果需要,您可以将帮助程序从控制器传递到视图。还是不符合您的使用模式?
-
不幸的是它没有。我的主要问题是我想在模型以及视图/控制器中使用相同的功能。虽然理论上我也可以将助手传递给模型,但这会很麻烦,并且可能需要进行相当多的重写。我正在寻找更像 Zend_Debug::dump 的东西,但没有静态函数的限制,因为我不想在生产环境中错误地输出调试信息,并且信息的内容可能取决于当前用户.
标签: php zend-framework