我正在使用zend框架开发一个web应用程序。我喜欢所有自动加载的工作原理但是我并不喜欢Zend_Controller默认命名控制器的方式。我正在寻找一种方法来使zend_controller能够理解存储在{$ app} /Controller/User.php中的名为Controller_User的控制器类。无论如何,我可以用最少量的额外代码来做到这一点吗?
答案 0 :(得分:2)
这肯定不是一步一步的答案,但我相信您可以通过继承标准调度程序类来完成您想要的任务,并对处理控制器目录和控制器对象的函数进行一些更改。 ZF Ref Guide - Subclassing Dispatcher
答案 1 :(得分:0)
子类调度程序(引自http://cslai.coolsilon.com/2009/03/28/extending-zend-framework/)
class Coolsilon_Controller_Dispatcher
extends Zend_Controller_Dispatcher_Standard {
public function __construct() {
parent::__construct();
}
public function formatControllerName($unformatted) {
return sprintf(
'Controller_%s', ucfirst($this->_formatName($unformatted))
);
}
public function formatActionName($unformatted) {
$formatted = $this->_formatName($unformatted, true);
return strtolower(substr($formatted, 0, 1)) . substr($formatted, 1);
}
}