von Carsten Lucke, 28.02.2008

Einführung in die Entwicklung und grundlegende Konzepte: Workshop Zend Framework

Aus dem
t3n Magazin Nr. 11

Jetzt kaufen

Die Front-Controller-Implementierung „Zend_Controller_Front“ nimmt jeden Request in einer Webanwendung entgegen und wählt einen passenden Action-Controller, der den Request verarbeitet. Der passende Action-Controller wird auf Basis der Bestandteile der aufgerufenen URL ermittelt.

Vom Routing und hübschen URLs

Der Front-Controller verwendet einen Routing-Mechanismus, um den Action-Controller zu ermitteln, der einen Request verarbeitet. Entscheidend dabei sind die Bestandteile der URL, die dem Hostnamen folgen. Diese identifizieren einen Controller, eine Action und gegebenenfalls mehrere Request-Parameter.

Den Action-Controller wählt das Zend Framework auf Basis der aufgerufenen URL aus. Durch URL-Rewriting sind die URLs zudem noch suchmaschinenfreundlich.

Den Action-Controller wählt das Zend Framework auf Basis der aufgerufenen URL aus. Durch URL-Rewriting sind die URLs zudem noch suchmaschinenfreundlich.

Ein Action-Controller ist eine Klasse, die im Standardfall im Verzeichnis „applications/controllers“ liegt. Die Methoden einer solchen Controllerklasse werden als „Actions“ bezeichnet. Methodennamen in Camel-Case-Schreibweise (z. B. AirPort) werden in der URL durch den Einsatz von Bindestrichen angegeben. Ein paar Beispiele verdeutlichen dies: Angenommen, Sie hätten einen Artikel-Controller, der eine Liste von Artikeln anzeigen kann, wäre die Aufruf-URL für den Controller und die entsprechende Action http://myhost.com/artikel/zeige-liste. Die Controllerklasse müsste demnach „ArtikelController“ heißen und eine Methode „zeigeListeAction()“ anbieten. Wenn wir das Beispiel weiterdenken, möchten wir auch in der Lage sein, Artikeldetails anzuzeigen. Im Controller würden wir hierfür die Methode „detailsAction()“ implementieren. Diese würde einen Requestparameter „id“ auslesen und entsprechend den Artikel mit der gegebenen Artikelnummer anzeigen. Die URL hierfür würde wie folgt aussehen: http://myhost.com/artikel/details/id/123.

Enthält eine URL keine Informationen zu Controller oder Action, so wird als Standard jeweils „index“ verwendet. Der Standardcontroller heißt also „IndexController“ und die Standardaktion ist „indexAction()“. Der Aufruf „http://myhost.com/artikel“ würde beim Routing in „ArtikelController::indexAction()“ resultieren und dementsprechend ergibt „http://myhost.com/“ den Aufruf von „IndexController::indexAction()“. Für komplexere Anwendungen ist es möglich, Modulinformationen zur weiteren Aufteilung der Applikation in der URL zu kodieren. Informationen hierzu liefert die Dokumentation des Standard-Routers [4].

Seite:  1 2 3 4 5 6 7 8 9

Empfohlene Artikel