在Zend 2模块中是否需要onBootstrap() ?


Is onBootstrap() necessary in a Zend 2 module?

在Zend 2框架应用程序中,应用程序module.php包含一个onBootstrap()函数:

class Module
{
    public function onBootstrap(MvcEvent $e)
    {
        $eventManager        = $e->getApplication()->getEventManager();
        $moduleRouteListener = new ModuleRouteListener();
        $moduleRouteListener->attach($eventManager);
    }
...

但是,在模块创建文档中没有提到这一点。

是否需要在每个模块中实现此功能?如果是,为什么?其目的是什么?

简短的回答:不,没有必要。

ModuleRouteListener是一个使用__MODULE____CONTROLLER__键来代替FQCN指定路由的特性。如果你不需要这个特性(在大多数开发良好的应用中都是这样),你也不需要这个路由监听器。

此外,您只需要添加一次,而不是每个模块。

最后一个注意事项,只把代码放在onBootstrap(),这是非常高性能的。它对每个请求都执行,所以如果你做了很多工作,这会显著降低应用程序的速度。所以要注意你在做什么!