我正在使用Zend Framework 1.6,因此我没有使用Zend_Application。
我有一个简单,正常的View Helper(扩展Zend_View_Helper_Abstract)。只要我将它添加到动作控制器中的视图中,它就能完美地工作。但我希望能够在每个模块中的每个视图中使用它。我认为在我的bootstrap文件中获取全局视图应该很容易并且执行此操作:
$view->addHelperPath(PATH_VIEW_HELPERS, 'RT_View_Helper_');
但我似乎无法在我的bootstrap文件中获取$ 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()中。
有没有人对如何做到这一点有任何想法?它似乎应该如此简单,但我在两天内无法找到解决方案。
全部谢谢:) 阿里
答案 0 :(得分:4)
如果您使用的是Zend_Layout
,那么这些内容可以为您提供Zend_View
:
$layout = Zend_Layout::getMvcInstance();
$view = $layout->getView();
// set helpers, doctype, etc...
答案 1 :(得分:0)
我不确定您的问题,但在我看来,您可以在Zend_Registry中注册视图对象
Zend_Registry::set('view', new Your_view);
答案 2 :(得分:0)
您可以在“setup.php / bootstrap.php或任何文件”中执行以下操作
$view = new Zend_View();
// add Helper Path
$view->setHelperPath('/path/to/more/helpers', 'My_View_Helper');