7.2. Fondations de Zend_Controller

Le système Zend_Controller est conçu pour être léger, modulaire, et extensible. Il est de conception minimaliste pour permettre la flexibilité et la liberté aux utilisateurs tout en fournissant assez de structure de sorte que les systèmes établis autour de Zend_Controller partagent certaines conventions communes et dispositions semblables de code.

Le diagramme suivant décrit le déroulement des opérations, et ce qui suit décrit en détail les interactions :

Le déroulement des opérations de Zend_Controller est implémenté par plusieurs composants. Même s'il n'est pas nécessaire de comprendre complètement les détails de tous ces composants pour employer le système, avoir une bonne connaissance du fonctionnement du processus est utile.

Le déroulement des opérations de Zend_Controller est relativement simple. Une demande est reçue par Zend_Controller_Front, qui appelle alternativement Zend_Controller_Router_Rewrite pour déterminer le contrôleur (et l'action dans ce contrôleur) à dispatcher. Zend_Controller_Router_Rewrite décompose l'URI afin de régler les noms de contrôleur et d'action dans la requête. Zend_Controller_Front entre alors dans une boucle de dispatchage. Il appelle Zend_Controller_Dispatcher_Standard, en lui passant la requête, pour dispatcher le contrôleur et l'action indiqués dans la requête (ou utiliser les valerus par défauts). Après que le contrôleur ait fini, la commande revient à Zend_Controller_Front. Si le contrôleur a indiqué qu'un autre contrôleur devait être dispatché en remettant à zéro le statut dispatché de la requête, la boucle continue et un autre dispatchage est effectué. Sinon, le processus se termine.