Zum Inhalt springen
Der Guide für ein smartes Leben.
PHP-Enzyklopädie

Teil 2: Serie: PHP-Frameworks Teil 7 - eZ Components

Autoren: Redaktion pcmagazin und Tobias Hauser • 2.11.2009 • ca. 2:15 Min

eZ schlägt in der Installationsanleitung noch zwei andere Methoden vor:...

eZ schlägt in der Installationsanleitung noch zwei andere Methoden vor:

require "ezc/Base/
ezc_bootstrap.php";

ruft direkt eine PHP-Datei von eZ auf, die diese Arbeit erledigt. Im Gegensatz zur __autoload()-Funktion kann diese Variante allerdings nicht für andere Klassen außer die von eZ verwendet werden. Die dritte Variante ist die über die SPL (Standard PHP Library), eine Bibliothek mit Schnittstellen und hilfreichen Funktionen für den Umgang mit Objektorientierung:

spl_autoload_register( array( "ezc
Base", "autoload" ) );

Egal, welche der drei Versionen Sie verwenden, Sie können nun einfach Klassen aus dem eZ-Components-Framework einsetzen. Das folgende Beispiel zeigt beispielsweise, wie in einem Verzeichnis rekursiv alle Dateien mit der Endung .php gefunden und als Array zurückgeliefert werden:

$php_files = ezcBaseFile::findRecursi
ve("Verzeichnis/Pfad", array( '@\.php$@' ) );
var_dump($php_files);

Die Dokumentation von den eZ Components ist in drei Teile unterteilt: Installationsanleitung, API-Referenz mit allen Klassen und Methoden und Tutorials für jedes der eingesetzten Framework-Bestandteile.

MVC

Die bisher in dieser Serie vorgestellten Frameworks stellen alle das MVC-Modell in den Vordergrund. Dies ist bei den eZ Components nicht der Fall. eZ Components versteht sich eher als Bibliothek, die kein bestimmtes Entwicklungsmodell vorgibt. Das heißt aber nicht, dass die MVC-Unterstützung nicht vorhanden wäre. Seit 2008.2 gibt es die Mvc Tools.

PHP-Frameworks Teil VII - eZ Components
Rekursiv: Am Anfang ist nur eine PHP-Datei im angegebenen Verzeichnis und den Unterverzeichnissen.
© Archiv

Allerdings ist auch hier die Vorgabe nicht so streng wie bei anderen Frameworks. Es gibt keine eindeutigen Konventionen und der grundlegende Aufbau bleibt dem Entwickler weitgehend selbst überlassen. Das hat Vor- und Nachteile. Ein Vorteil ist, dass der Entwickler genauso viel MVC bauen kann, wie er möchte.

Der Nachteil ist, dass er wirklich jedes Einzelteil selbst erstellen muss. Für diesen Artikel kommt als Beispiel die schon bekannte Tabelle mit den verschiedenen Frameworks zum Einsatz. Zum Auslesen und Darstellen orientiert sich die Struktur an den Beispielen, die eZ in seinen Tutorials gibt.

Die Mvc Tools sind vor allem dazu gedacht, HTTP-Anfragen MVC-konform abzufangen und abzuarbeiten. Das heißt, die Requests werden über ein Routing mit entsprechenden Filtern einem Controller zur Verfügung gestellt. Letzterer greift auf die Views mit einem Template-Modell zu und aus allem wird die Antwort generiert. Die Datenintegration, das M in MVC, spielt hier erst mal noch keine Rolle. Sie kann zum Beispiel über die Klasse PersistentObject im Controller nachgerüstet werden.

Die Standardstruktur, die von eZ für den MVC-Aufbau verwendet wird, besteht aus vier Verzeichnissen:

• für vorgecachte Templates mit einem beschreibbaren Unterverzeichnis compiled_templates • lib für alle MVC-Bestandteile wie Controller, Views et cetera • templates für die Templates • www für die eigentliche Applikation.

Die index.php im www-Verzeichnis ist der Einsprungpunkt für die gesamte Anwendung und das nach außen verfügbare Verzeichnis. Hier wird eine zentrale Konfigurationsdatei ausgeführt und der Dispatcher wartet auf die HTTP-Requests, die dann gemäß der Konfiguration abgearbeitet werden:

include '../config.php';
$config = new frameworksMvcConfigura
tion();
$dispatcher = new ezcMvcConfigurable
Dispatcher( $config );
$dispatcher->run();

Im vorliegenden Beispiel ist die Datei config.php im Hauptverzeichnis der Applikation platziert. Die config.php-Datei ist auch der Ort, an dem Sie den autoload-Mechanismus von den eZ Components initialisieren und eventuell auch den include_path verändern. Außerdem rufen Sie hier das Klassen-Repository auf.