我是这个框架的新手。 我一直在搜索如何定义自定义路由,我找到了这段代码:
protected function _initRouter(){
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$router->addRoute(
'listOnIndex',
new Zend_Controller_Router_Route('/list', array('controller' => 'index', 'action' => 'list'))
);
return $router;
}
我已尝试删除返回值,但仍然有效。那是为什么?
是否真的有必要返回实例?
非常感谢你的帮助! :)
答案 0 :(得分:9)
如果从名为_initSomeResource()
的boostrap方法返回一个值,则返回值将“存储”在引导程序中,以便稍后检索:
$bootstrap->getResource('SomeResource')
由于bootstrap类作为invoke参数传递给控制器,因此您可以使用以下命令访问控制器中的这些资源:
$bootstrap = $this->getInvokeArg('bootstrap');
$someResource = $bootstrap->getResource('SomeResource');
在您的情况下,您正在配置的资源是路由器,您以后不需要访问它。所以在这种情况下,未能从_initRouter()
返回它并没有伤害到你。
答案 1 :(得分:2)
在这种情况下,不需要返回$ router实例。
由于您使用单例模式检索路由器对象并通过addRoute方法配置新路由,因此添加的路由将被保存以便进一步处理(只要使用此实例)。