Zend 2 模块中是否需要 onBootstrap()?
Is onBootstrap() necessary in a Zend 2 module?
在 Zend 2 skeleton application 中,应用程序 module.php
包含一个 onBootstrap()
函数:
class Module
{
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
...
然而,这在模块创建中没有提到documentation。
是否有必要在每个模块中实现这个功能?如果是,为什么?它的目的是什么?
简答:不,没有必要。
ModuleRouteListener 是一项使用 __MODULE__
和 __CONTROLLER__
键而不是 FQCN 指定路由的功能。如果您不需要该功能(在大多数开发良好的应用程序的情况下都是如此),则不需要此路由侦听器。
此外,您只需要添加一次,而不是为每个模块添加。
最后一点,只将代码放在 onBootstrap()
中,这是非常高效的。它会根据每个请求执行,所以如果你做了很多工作,这会显着降低你的应用程序的速度。所以请注意你在那里做什么!
在 Zend 2 skeleton application 中,应用程序 module.php
包含一个 onBootstrap()
函数:
class Module
{
public function onBootstrap(MvcEvent $e)
{
$eventManager = $e->getApplication()->getEventManager();
$moduleRouteListener = new ModuleRouteListener();
$moduleRouteListener->attach($eventManager);
}
...
然而,这在模块创建中没有提到documentation。
是否有必要在每个模块中实现这个功能?如果是,为什么?它的目的是什么?
简答:不,没有必要。
ModuleRouteListener 是一项使用 __MODULE__
和 __CONTROLLER__
键而不是 FQCN 指定路由的功能。如果您不需要该功能(在大多数开发良好的应用程序的情况下都是如此),则不需要此路由侦听器。
此外,您只需要添加一次,而不是为每个模块添加。
最后一点,只将代码放在 onBootstrap()
中,这是非常高效的。它会根据每个请求执行,所以如果你做了很多工作,这会显着降低你的应用程序的速度。所以请注意你在那里做什么!