A free and open-source book on ZF3 for beginners

Translation into this language is not yet finished. You can help this project by translating the chapters and contributing your changes.

3.7. Événements et cycle de vie de l'application

Comme vous l'avez appris dans la section précédente, à chaque requête HTTP, l'objet Zend\Mvc\Application est créé. Typiquement, une application "vit" pendant une seconde ou moins (cette durée est suffisante pour générer la réponse HTTP). La "vie" de l'application comprend plusieurs étapes.

Zend Framework 3 utilise le concept d'événement. Une classe peut déclencher un événement et d'autres classes peuvent écouter des événements. Techniquement, déclencher un événement signifie simplement appeler une autre méthode de "callback". La gestion des événements est implémentée dans le composant Zend\EventManager.

Chaque étape de la vie de l'application est initiée par l'application en déclenchant un événement (cet événement est représenté par la classe MvcEvent vivant dans l'espace de noms Zend\Mvc). D'autres classes (appartenant à Zend Framework ou spécifiques à votre application) peuvent écouter des événements et réagir en conséquence.

Ci-dessous, les cinq événements principaux (étapes de la vie de l'application) sont présentés :

Bootstrap. Lorsque cet événement est déclenché par l'application, un module a la possibilité de se déclarer lui même en tant qu'écouteur d'autres événements de l'application dans sa méthode de callback onBootstrap().

Route. Lorsque cet événement est déclenché, l'URL de la requête est analysée à l'aide d'une classe de routeur (généralement, avec la classe Zend\Router\Http\TreeRouteStack). Si une correspondance exacte entre l'URL et une route est trouvée, la demande est transmise à la classe de contrôleur assignée à la route demandée.

Dispatch. La classe de contrôleur "dispatch" (distribue) la demande en utilisant la méthode d'action correspondante et produit les données qui peuvent être affichées sur la page web.

Render. Lors de cet événement, les données produites par la méthode d'action du contrôleur sont transmises pour etre rendue vers la classe Zend\View\Renderer\PhpRenderer. La classe de rendu utilise un fichier vue pour produire une page HTML.

Finish. Sur cet événement, la réponse HTTP est renvoyée au client.

Le flux d'événements est illustré à la figure 3.3 :

Figure 3.3. Flux d'événements pendant le cycle de vie de l'application Figure 3.3. Flux d'événements pendant le cycle de vie de l'application

Bien que cela soit rarement nécessaire, vous trouverez des exemples pratiques d'écoute et de réaction à un événement dans le chapitre Créer un nouveau module.


Top