2010-04-02 4 views
4

Zend Framework FrontController implémente Singleton et en plus il a quelque sorte un "paradigme" de plugin, - quelle est l'idée derrière son architecture, peut-être qu'il implémente un paradigme bien connu? et si oui, si vous pouviez donner des liens vers des directions où je pourrais trouver des informations sur les raisons qui ont amené ce paradigme particulier?quelle idée est derrière Zend Framework Frontcontroller/dispatcher

Répondre

8

L'idée de base d'un FrontController est de fournir un point d'entrée unique à votre application.

mentionnant PoEAA:

le contrôleur frontal consolide toutes les manipulations de demande en acheminant les demandes par l'intermédiaire d'un seul objet de gestionnaire. Cet objet peut effectuer un comportement commun, qui peut être modifié à l'exécution avec les décorateurs. Le gestionnaire distribue ensuite les objets de commande pour un comportement particulier à une requête.

D'autres définitions:

Voir aussi le chapter in the reference guide about the Front Controller:

Zend_Controller_Front implémente une utilisation modèle Front Controller » d dans »Applications Model-View-Controller (MVC). Son but est d'initialiser l'environnement de requête, d'acheminer la requête entrante, puis d'envoyer toutes les actions découvertes; il agrège les réponses et les renvoie lorsque le processus est terminé.

À propos d'être un Singleton

Zend_Controller_Front met également en œuvre le modèle »Singleton, ce qui signifie une seule instance de celui-ci peut être disponible à tout moment. Cela lui permet également d'agir en tant que registre sur lequel les autres objets du processus de répartition peuvent puiser.

Pour une définition générale du Singleton et le motif de Registre voir:

À propos d'être connectable

Zend_Controller_Front enregistre une Plugi n courtier avec lui-même, permettant aux différents événements qu'il déclenche d'être observés par les plugins. Dans la plupart des cas, cela donne au développeur l'opportunité d'adapter le processus de répartition au site sans devoir étendre le contrôleur frontal pour ajouter des fonctionnalités.

Une bonne explication détaillée comment Zend Framework utilise le contrôleur avant et ce qui se passe sous le capot lors d'une rquest MVC se trouve dans: