2015-08-21 113 views
0

在Zend 2 skeleton application,應用程序module.php包含onBootstrap()功能:在Zend 2模塊中需要onBootstrap()嗎?

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

然而,這不是在模塊創建documentation提及。

是否有必要在每個模塊中實現此功能?如果是,爲什麼?它的目的是什麼?

+1

我發現在_one_模塊中使用它通常很好,只要你已經完成了其他模塊上面的默認東西就不需要它了。不幸的是,我不知道它的技術性,但從經驗中我發現一個就足夠了...... – Ankh

+0

http://framework.zend.com/manual/current/en/modules/zend.module-manager.module- class.html http://framework.zend.com/manual/current/en/modules/zend.mvc.examples.html#bootstrapping – newage

回答

1

簡答:不,不需要。

ModuleRouteListener是一個用__MODULE____CONTROLLER__鍵代替FQCN來指定路由的功能。如果您不需要該功能(這將在大多數情況下開發良好的應用程序),您不需要此路由偵聽器。

此外,你只需要添加一次,而不是每個模塊。

最後一個音符,只放在onBootstrap()這是非常高性能的代碼。它會在每個請求中執行,所以如果你做了很多工作,這會顯着減慢你的應用程序。所以要注意你在那裏做什麼!