2012-05-29 3 views
10

Mit ZF1 gab es eine Bootstrap-Datei, die unter application/Bootstrap.php definiert ist, aber ich kann es nicht finden, wenn ich auf die ZF2 skeleton application schaue.Wo ist die Bootstrap-Datei in ZF2?

Was ist die ZF2 entspricht der ZF1 Bootstrap.php Datei?

+0

ich nicht gespielt habe mit ZF2 noch, aber vielleicht möchtest du den Event-Manager auschecken (wiederum nur eine Vermutung meinerseits). –

+0

@ doydoy44, der neue Tag-Name ist unpassend und nicht benötigt. Fragen zu ZF1 und ZF2 ** sollten beide Tags haben. – Charles

Antwort

10

In ZF2 gibt es keine individuelle Bootstrap-Datei wie in ZF1. Sie können jedoch eine onBootstrap() Methode zu einer Ihrer Module Klassen hinzufügen, so dass es nach loadModule.post aufgerufen wird, sobald $application->bootstrap() aufgerufen wird.

Auf github in der ZF2 Skeleton App, die Datei, die Sie eine onBootstrap() Methode hinzufügen möchten, befindet sich unter module/Application/Module.php.

Hier finden Sie einige relevante Dokumentation zum Bootstrapping aus dem ZF2-Benutzerhandbuch (Hinweis: Änderungen an diesem Material sind vorbehalten).

The MVC Bootstrap Event
Bootstrapping an Application
Bootstapping (in relation to MVC)
Sample usage of the MVC Bootstrap Event

6

Von Gary Hockin der nice article über Bootstrapping und andere Änderungen in ZF2:

Es gibt keine Anwendungsebene bootrapping in Zend Framework 2, die jeweils Modul ist verantwortlich für Bootstrapping seiner eigenen Ressourcen in seiner Module.php. Dies geschieht mit einer Kombination der onBootstrap Methode der Modulklasse und der Event Manager. Realistisch gesehen wird das meiste Bootstrapping nicht mehr benötigt; es ist durch Einträge in den Service Manager und Ereignis-Hooks, sondern als Beispiel ersetzt wurde, ist hier, wie Sie Modulebene Bootstrapping unter Verwendung der onBootstrap Methode von Module.php durchführen kann:

public function onBootstrap(\Zend\Mvc\Event $e) 
{ 
    $myService = $e->getApplication()->getServiceLocator()->get('my-service'); 
    $myService->doBootrappingCode(); 
}