Zend framework Zend:如何在视图和操作助手之间共享公共代码?

Zend framework Zend:如何在视图和操作助手之间共享公共代码?,zend-framework,view-helpers,actionviewhelper,Zend Framework,View Helpers,Actionviewhelper,我需要从一些配置和对外部Web服务的调用的组合中得到一个布尔值 每个视图的布局文件中都需要布尔值。在一些特定的控制器中也需要它 我有一个action和一个view助手,可以从外部webservice获取所需的值 现在,我已经创建了一个视图帮助器和一个动作帮助器,使用重复的逻辑来检查外部Web服务和配置值,但在我看来,应该有一种方法在帮助器之间共享该公共代码 有更好的办法吗 谢谢 您应该能够使用action helper执行这两项任务。您可能想看看MWOP的这篇博文:他使用一个动作助手将资源从引导

我需要从一些配置和对外部Web服务的调用的组合中得到一个布尔值

每个视图的布局文件中都需要布尔值。在一些特定的控制器中也需要它

我有一个action和一个view助手,可以从外部webservice获取所需的值

现在,我已经创建了一个视图帮助器和一个动作帮助器,使用重复的逻辑来检查外部Web服务和配置值,但在我看来,应该有一种方法在帮助器之间共享该公共代码

有更好的办法吗


谢谢

您应该能够使用action helper执行这两项任务。您可能想看看MWOP的这篇博文:他使用一个动作助手将资源从引导分配到控制器。除了要在控制器上设置布尔变量外,您还需要采取类似的方法。还可以使用以下命令从辅助对象中访问视图对象:

$view = Zend_Layout::getMvcInstance()->getView();
$view->yourBooleanVar = 'whatever';

然后您可以在视图中正常访问它。

现在看看这种注入方法。我实际上有两个动作助手,一个检查外部服务,另一个分配布尔值。这不对吗?使用这种方法,我必须从每个控制器调用action helper才能访问视图?我不确定我是否理解。链接的博客文章中的第二个代码示例从引导程序中的一个方法调用操作帮助器,因此无论您是否需要在控制器中使用该帮助器,它都会自动运行。也许如果你能解释一下布尔变量是什么,我可以给出一个更好的例子。事实证明,我的用例比我想象的要简单,我可以在第二个助手中的preDispatch中设置视图变量,只需在少数需要它的控制器中检查视图值。谢谢你的回答。