2

我正在使用 Zend Framework 1.6,因此我没有使用 Zend_Application。

我有一个简单的普通视图助手(扩展 Zend_View_Helper_Abstract)。只要我将它添加到我的动作控制器的视图中,它就可以正常工作。但我希望能够在每个模块的每个视图中使用它。我认为在我的引导文件中获取全局视图并执行以下操作应该很容易:

$view->addHelperPath(PATH_VIEW_HELPERS, 'RT_View_Helper_');

但我似乎无法在我的引导文件中获取 $view 对象。我也试过

$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
    $viewRenderer->initView();
}
$view = $viewRenderer->view; 
$view = new Zend_View(array('encoding'=>'UTF-8'));
$view->addHelperPath(PATH_VIEW_HELPERS, 'RT_View_Helper_');

但这也无济于事。我试过把它放在我的 boostrap(这是一个前端控制器插件)的 preDispatch() 和 postDispatch() 中。

有人对如何做到这一点有任何想法吗?看来应该是这么简单,可是我这两天没找到解决办法。

谢谢大家 :) 阿里

4

3 回答 3

4

如果您正在使用,Zend_Layout那么这些方面的内容应该可以为您提供Zend_View

$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
// set helpers, doctype, etc...
于 2010-08-20T06:26:47.610 回答
0

您可以在“setup.php / bootstrap.php 或任何文件”中执行以下操作

$view = new Zend_View();
// add Helper Path 
$view->setHelperPath('/path/to/more/helpers', 'My_View_Helper');
于 2010-08-20T08:11:58.187 回答
0

我不确定是否理解您的问题,但在我看来,您可以在 Zend_Registry 中注册视图对象

Zend_Registry::set('view', new Your_view);
于 2010-08-19T21:59:32.140 回答