【发布时间】:2010-09-19 19:08:23
【问题描述】:
假设您试图让自己尽可能接近 Zend Framework 的宇宙视图,那么应该如何将一个模块中的视图和操作助手与另一个模块共享?
假设我有两个模块。模块“A”有一个名为 Output 的视图助手。
class Modulea_Zend_View_Helper_Ouput extends Zend_View_Helper_Abstract
{
function output($var)
{
echo strip_tags($var);
return true;
}
}
如果我尝试从模块“B”的视图中使用此帮助器
File: moduleb/views/scripts/index/index.phtml
<?php $this->output($somevar); ?>
我得到一个例外
在注册表中找不到名为“输出”的插件
什么是“正确的”是使用来自模块 B 的视图助手输出。
【问题讨论】:
-
那么,您在模块 A 中有一个实际上不是特定于模块的视图助手?
-
杰森,没错。我们经常发现/意识到为特定模块构建的助手最终在另一个模块中有用。这在项目开始时并不总是很明显。从您的问题的语气看来,跨模块使用的助手有一个中心位置,您建议应该移动这些助手?还是别的什么?
-
将助手移动到
library很容易。您也可以将助手创建为Application_View_Helper_,整个应用程序通用。 -
我会确切地推荐takehin拥有的东西。我不是故意要流鼻涕的,我只是在完全回答之前要求澄清。在这种情况下,在我看来,只需重构帮助器并将其移动到您的公共库中将是最佳实践。
-
@jason,并不意味着流鼻涕,只是您的问题似乎表明您正在准备的答案类型。 :)
标签: php zend-framework plugins