我的所有控制器都需要相同的 2 行,每个控制器都有自己的初始化逻辑,但是这两行对所有控制器都是通用的。
public function init()
{
$fm =$this->_helper->getHelper('FlashMessenger');
$this->view->messages = $fm->getMessages();
}
如何避免重复代码?
更新:
好的,FlashMessenger 只是一个例子,假设我需要在每个动作中写一个日志行,除了'someAction'@'someController'。所以新的共同路线应该是。
$this->logger = new Zend_Log();
$writer = new Zend_Log_Writer_Stream(APPLICATION_PATH.'/../logs/log.txt');
$this->logger->addWriter($writer);
$this->logger->log('Some Message',Zend_Log::DEBUG);
问题是,我应该将这些行放在哪里以避免在每个控制器的所有 init() 中重复它们。这些行应该放在 bootstrap?。如果是这样:如何跳过“someAction”的日志行。或者我应该实现一个“BaseController”并让我的所有控制器都从它扩展。如果是这样:我如何自动加载它?(致命错误:找不到类“BaseController”)。