例如,我们有索引控制器:
class IndexController{ ...
如何制作例如
class Index_Controller{ ...
工作?
答案 0 :(得分:3)
我自己从来没有尝试过(并且不会真的建议这样做:知道如何修改类很好,因为它们遵循标准,当你开始处理基于ZF的项目时!) ,但可能有一个解决方案;请参阅手册中的以下部分:12.6.2. Subclassing the Dispatcher
在页面底部,它显示(引用,强调我的):
将调度程序子类化的可能原因包括使用a的愿望 不同的类或方法命名 动作控制器中的架构, 或者想要使用不同的东西 调度范例如 调度到下的动作文件 控制器目录(而不是 派遣到类方法)。
所以,这可能会帮助你做你所要求的事情 - 再一次,我从来没有这样做过,所以我不能肯定地说,但我希望这会给出最终解决方案的暗示。 ..
答案 1 :(得分:1)
正如Pascal MARTIN所建议的那样,对调度程序进行子类化是正确的方法 - 即使我同意他的观点,即偏离给定的ZF命名约定应该是有充分根据的。
Zend_Controller_Dispatcher_Abstract
提供了两种方法分别确定控制器类的名称和操作方法:
public function formatControllerName($unformatted)
{
return ucfirst($this->_formatName($unformatted)) . 'Controller';
}
public function formatActionName($unformatted)
{
$formatted = $this->_formatName($unformatted, true);
return strtolower(substr($formatted, 0, 1)) . substr($formatted, 1) . 'Action';
}
您可以只是子类Zend_Controller_Dispatcher_Abstract
并覆盖一个或两个方法以匹配您所需的命名约定。