如何在所有控制器应用程序范围内调用Zend_Controller_Action中的方法

时间:2011-06-19 11:33:51

标签: php zend-framework

我是Zend Framework的新手。第1件事,我想在视图中将.phtml延伸更改为.php

经过研究,我发现这个代码在不同控制器的init方法中有效:

$this->getHelper('viewRenderer')->setViewSuffix('php');

问题是我必须在每个控制器中重复该代码,这是不好的,并且违背了使用框架的目的。

我可以将Zend_Controller_Action子类化为一个基本控制器,其中包含所有其他控制器可以继承的共享代码,但据我所知,这不是最好的做法。

如果不对Zend_Controller_Action类进行子类化并且不使用任何插件或Action助手,我如何实现共享代码

提前致谢。

1 个答案:

答案 0 :(得分:1)

刚想出来......不需要任何基础控制器。

在bootstap中,我写了这段代码:

protected function _initViewSuffix() {

$this->bootstrap('View');
    $view = $this->getResource('View');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
$viewRenderer->setViewSuffix('php');
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
}

然后在Application.ini中,我添加了这一行:

resources.view = []

现在可行。