在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()
,这是非常高性能的。它对每个请求都执行,所以如果你做了很多工作,这会显著降低应用程序的速度。所以要注意你在做什么!