PHP-Enzyklopädie

Serie: PHP-Frameworks Teil 7 - eZ Components

eZ Components bietet eine umfangreiche Bibliothek mit PHP-Klassen. MVC-Unterstützung ist vorhanden, aber freiwillig und nicht verpflichtend.

© Archiv

PHP-Frameworks Teil VII - eZ Components

das Hauptprodukt von eZ ist das Content Management System eZ Publish. Neben diesem umfangreichen und auf Unternehmenszwecke ausgelegten CMS bietet eZ seit Jahren ein eigenes Framework, die eZ Components (). Lizenztechnisch basieren sie auf der unproblematischen New-BSD-Lizenz.In Sachen Version hat sich in letzter Zeit einiges getan. Neu ist zum Beispiel seit Version 2008.2 die Unterstützung für MVC. Die aktuelle Version ist 2009.1 und erfordert mindestens PHP 5.2.1.

Einrichtung

Die Einrichtung klappt auf verschiedene Arten: eZ bietet den normalen Download, einen SVN-Zugang und als spannende Alternative eine Installation über den PEAR-Installer. PEAR () selbst ist eigentlich auch ein Framework, das aus vielen einzelnen Paketen mit Funktionalitäten besteht.

Allerdings besitzt es noch stärker als die eZ Components den Charakter einer Bibliothek mit relativ losen Einzelteilen. Eine Besonderheit von PEAR ist aber das sehr gute Distributionssystem, das auch in neueren PHP-Versionen gleich mitgeliefert wird. Hiermit ist es möglich, über die Kommandozeile direkt PEAR-Pakete zu installieren und zu aktualisieren. eZ bietet diese Möglichkeit mit einem sogenannten Kanal: components.ez.no. Diesen müssen Sie dem PEAR-Installer verfügbar machen:

pear channel-discover components.ez.no

Anschließend können Sie mit dem Befehl install die Pakete einfach einrichten.

pear install -a ezc/eZComponents

ezc ist dabei das Kürzel für den Kanal. Nach der Installation finden Sie in Ihrem PEAR-Verzeichnis die entsprechenden Pakete. Sie müssen nun noch sicherstellen, dass das PEAR-Verzeichnis auch als include_path festgelegt ist. Dies geht über die Datei php.ini oder alternativ auch im Skript mit der Funktion set_include_path(). Die folgende Zeile fügt beispielsweise unter Windows ein PEAR-Verzeichnis hinzu und holt sich zusätzlich mit get_include_path() die bisherigen Werte aus der php.ini:

set_include_path( "C:\php\pear" .
PATH_SEPARATOR . get_include_path());

Sollten Sie die Komponenten nicht per PEAR installiert, sondern heruntergeladen haben, verweisen Sie im include_path auf das entsprechende Verzeichnis. Alternativ binden Sie jede Komponente mit dem kompletten Pfad ein. Allerdings ist das bei umfangreicheren Projekten recht unpraktisch und auch bei Änderungen weniger einfach handhabbar. Vor allem, weil eZComponents einen recht praktischen Autoload-Mechanismus unterstützt, der alle benötigten Klassen selbst lädt. Und das geht so: Zuerst laden Sie die Basisklasse:

© Archiv

Installation: Mit PEAR verläuft die Einrichtung sehr komfortabel.
require_once "ezc/Base/base.php";

Lief die Installation nicht über PEAR, sondern über den Download, ist die Struktur in den eZ-Verzeichnissen anders. Sie müssen dann die Basis-Datei so einbinden:

require_once "Base/src/base.php";

Anschließend können Sie mit der __autoload()-Funktion von PHP einfach alle eZ-Klassen aufrufen:

function __autoload
( $className ) {
ezcBase::autoload
( $className ); }

Mehr lesen

Chronologische Liste und Netflix-Links -

Neuerscheinungen in der Übersicht -

Vorschau auf Film- und Serien-Highlights -

Mehr zum Thema

Webdesign

Adobe Illustrator wird im Webdesign immer beliebter. Wie Sie das Tool richtig einsetzen, erfahren Sie hier.
Facebook

Was sind die Implikationen für Unternehmen und Endanwender bei Facebooks neuer Suche Graph Search?
Online-Recht

Allgemeine Geschäftsbedingungen liest sich niemand gerne durch. Sie sind jedoch notwendig und äußerst sinnvoll. Worauf sie achten sollten.
Online-Recht in der Cloud

Dateien werden immer häufiger in der Cloud bereitgestellt. Rechtlich ist das jedoch durchaus problematisch. Wir klären über das Urheberrecht in der…
E-Commerce-Logistik

Für den Erfolg eines Online-Shops sind zahlreiche Faktoren verantwortlich. Neben Produktvielfalt und Darstellung der Waren gehört auch die Logistik.