在zend framework官方文档中关于 “MVC 异常” 的一段介绍中,存在着一个错误。
中文版翻译的错误比较明显,也有可能是版本交替后一些方法被剔除的影响(没有查证)。
http://framework.zend.com/manual/zh/zend.controller.exceptions.html 的最后一段代码:
class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$dispatcher =
Zend_Controller_Front::getInstance()->getDispatcher();
$controller = $dispatcher->getController($request); //$dispatcher并没有getController方法
if (!$controller) {
$controller =
$dispatcher->getDefaultControllerName($request);
}
但想不到的是,英文版也同样存在错误。
http://framework.zend.com/manual/en/zend.controller.exceptions.html
最后一段代码:
class My_Controller_PreDispatchPlugin extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$front = Zend_Controller_Front::getInstance();
$dispatcher = $front->getDispatcher();
$class = $dispatcher->getControllerClass($request);
if (!$controller) { // $controller这个变量根本没有定义过,应该是$class才对
$class = $dispatcher->getDefaultControllerClass($request);
}