Zend Framework:没有返回值和在bootstrap init中返回资源实例之间的区别是什么?

Rei*_*Rei 0 php bootstrapping zend-framework

我是这个框架的新手.我一直在搜索如何定义自定义路由,我发现这个代码:

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;
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试删除返回值,它仍然有效.这是为什么?
是否真的有必要返回实例?非常感谢你的帮助!:)

Dav*_*aub 9

如果从名为的boostrap方法返回一个值_initSomeResource(),则返回值将"存储"在引导程序中,以便以后可能的检索:

$bootstrap->getResource('SomeResource')
Run Code Online (Sandbox Code Playgroud)

由于bootstrap类作为invoke参数传递给控制器​​,因此您可以使用以下命令访问控制器中的这些资源:

$bootstrap = $this->getInvokeArg('bootstrap');
$someResource = $bootstrap->getResource('SomeResource');
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您正在配置的资源是路由器,您以后不需要访问它.因此,在这种情况下,未能退回它_initRouter()并没有伤害到你.