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


How to call a method in Zend_Controller_Action in all controllers Application Wide

我是Zend Framework的新手。 第一件事 第一,我想将.phtml扩展更改为视图中的.php

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

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

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

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

如何在不子类化Zend_Controller_Action类且不使用任何插件或操作助手的情况下实现共享代码

提前谢谢。

刚想通了..无需任何基本控制器。

在引导中,我编写了以下代码:

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);
}

然后在应用程序.ini中,我添加了这一行:

resources.view = []

现在它起作用了。