7.2. Zend_Controller Grundlagen

Das Zend_Controller System wurde leichtgewichtig, modular und erweiterbar aufgebaut. Das Design ist einfach, um den Benutzern viel Flexibilität und Freiheiten zu ermöglichen. Dennoch bietet es ausreichend Struktur, damit Systeme, die auf den Zend_Controller aufbauen, gemeinsame Konventionen befolgen und einen ähnlichen Code Aufbau verwenden.

Das folgende Diagramm zeigt den Workflow und der folgende Texte beschreibt das Zusammenspiel im Detail:

Der Zend_Controller Ablauf wurde mit Hilfe verschiedener Komponenten implementiert. Während es für die Benutzung des Systems nicht notwendig ist, den kompletten Unterbau all dieser Komponenten zu verstehen, ist es hilfreich, über den Ablauf ausreichend Kenntnisse zu haben.

Der Ablauf vom Zend_Controller ist relativ einfach. Eine Anfrage wird vom Zend_Controller_Front empfangen, der wiederum Zend_Controller_Router_Rewrite aufruft, um zu ermitteln, welcher Controller (und welche Aktion in dem Controller) ausgeführt werden soll. Zend_Controller_Router_Rewrite zerteilt die URI um den Namen des Controllers und der Aktion für den Request zu setzen. Zend_Controller_Front durchläuft dann eine Dispatcher Schleife. Er ruft Zend_Controller_Dispatcher_Standard auf und übergibt den Request, um den Controller und die Aktion auszuführen, die im Request spezifiziert wurden (oder verwendet die Standardwerte). Wenn der Controller fertig ist, wird die Kontrolle wieder an Zend_Controller_Front übergeben. Wenn der Controller durch das Zurücksetzen des Dispatch Status des Requests angezeigt hat, dass ein weiterer Controller ausgeführt werden soll, wird der Durchlauf fortgesetzt und ein weiterer Dispatcher Prozess wird durchlaufen. Andernfalls endet der Prozess.