Kapitel 4. Zend Framework installieren

Inhaltsverzeichnis

4.1. Einleitung
4.2. Bevor Sie das Framework installieren
4.3. Das Zend Framework beziehen
4.3.1. Download als komprimierte Archivdatei
4.3.2. Checkout aus Subversion
4.3.3. Download als Linux-Distributions-Package
4.3.4. Nightly-Build-Download
4.4. Nach der Installation

4.1. Einleitung

Da die letzten Kapitel mit Theorie vollgestopft waren, wäre es doch eine nette Abwechslung, tatsächlich einmal etwas zu erstellen. Schließlich gibt es irgendwo Grenzen, wieviel ich in Ihr Hirn pressen kann, bevor ich endlich einmal aufgebe und mit der Show beginne! Ich weiß, dass Bücher mit umfangreicher Theorie mühsam sein können, aber bleiben Sie am Ball - es zahlt sich aus, die Theorie im Hinterkopf zu behalten.

Als ich angefangen habe, dieses Kapitel über die Installation des Zend Framework zu schreiben, klagte ich auf Twitter darüber, dass das Zend Framework einfacher zu installieren wäre, wenn jemand ein PEAR-Package dafür erstellen würde (Symfony und ezComponents tun das). Den Rückmeldungen nach ist das etwas, das Zend überlegt, und falls der Plan umgesetzt wird, werden Teile dieses Kapitels obsolet.

4.2. Bevor Sie das Framework installieren

Bevor Sie das Zend Framework installieren können, benötigen Sie ein funktionierendes Entwicklungssystem. Während dem Schreiben dieses Buches verwendete ich Ubuntu Linux 9.04 (the Jaunty Jackalope), Apache 2.2, MySQL 5.0.65 und PHP 5.2.6 - mit anderen Worten ein typisches, aktuelles LAMP-System aus den Ubuntu-Repositories. Windows-Systeme mit ähnlichen Versionen von Apache, MySQL und PHP stellen einen gleichwertigen Ersatz da und können genauso verwendet werden. Ich gehe davon aus, dass Sie zumindest den Webserver Apache und das Datenbankmanagementsystem MySQL verwenden. Falls Sie ISS und MSSQL einsetzen möchten, werde ich Sie nicht davon abhalten, aber beachten Sie, dass Sie einige Schritte in den nächsten paar Kapiteln für diese Systeme adaptieren müssen. Wo nötig werde ich in diesem Buch Windows-spezifische Befehle unter jenen für Linux auflisten.

Ich werde nicht behandeln, wie all diese Komponenten installiert werden. Das Internet wird geradezu überschwemmt mit Installationsanleitungen für jedes denkbare System und Szenario. Sie sollten Ihre bevorzugte Suchmaschine benutzen, um nach den entsprechenden Anweisungen zu suchen. Das PHP-Handbuch ist ein guter Ausgangspunkt, aber Sie können auch Update-Systeme der Linux-Distributionen (wie aptitude für Ubuntu) verwenden oder sich ein All-in-one-Entwicklungssystem für Windows wie XAMPP holen, um das in weniger Schritten zu erledigen.

4.3. Das Zend Framework beziehen

Momentan können Sie das Zend Framework auf mehreren Wegen beziehen. Sie müssen aber aufpassen, denn einige Methoden neigen dazu, etwas...heikel zu sein.

4.3.1. Download als komprimierte Archivdatei

Der einfachste Weg ist, die aktuelle Version von http://framework.zend.com/download/latest zu beziehen. Während ich das hier schreibe, ist die letzte Version 1.9.1. Sie müssen das heruntergeladene Archiv in ein Arbeitsverzeichnis wie den Desktop Ihres Betriebssystems entpacken. Wir werden uns die Stuktur der heruntergeladenen Dateien in Kürze ansehen.

Wenn Sie die Dateien des Frameworks heruntergeladen haben, nehmen Sie sich die Zeit, sich ein wenig zu orientieren. Wie im letzten Kapitel besprochen besteht das Zend Framework aus vier Sammlungen nützlicher Klassen: Standard, Standard Incubator, Extras und Extras Incubator. Am wichtigsten ist Standard - das ist die Hauptsammlung, die Sie hauptsächlich verwenden werden. Das verkompliziert die Sache etwas, denn der größte Teil der Vorbereitungen beim Aufsetzen einer neuen Aufwendung besteht darin festzustellen, was Sie zu Ihrem PHP-Include-Path hinzufügen müssen, ob Sie vorhaben, eine php.ini-Konfigurationsdatei zu bearbeiten oder den Pfad über set_include_path() zu setzen. Ausgehend vom übergeordneten Zend-Framework-Verzeichnis, das Sie extrahiert haben, finden Sie die vier Sammlungen in diesen Verzeichnissen:

Standard: /library
Standard Incubator: /incubator/library
Extras: /extras/library
Extras Incubator: /extras/incubator/library

Innerhalb jedes dieser Verzeichnisse finden Sie entweder ein Verzeichnis Zend oder ZendX. Das Postfix "X" kennzeichnet zusätzliche Komponenten, die mit ausgeliefert werden, für die Zend aber keinen offiziellen Support anbietet (der fehlende Support heißt aber nicht, dass sie unnütz sind!). Die obigen Pfade (die vollständigen Pfade, ausgehend von Ihrem Root-Verzeichnis oder Laufwerkbuchstaben) müssen Sie schließlich im include_path von PHP hinzufügen. Wenn ich beispielsweise die Dateien des Frameworks in /usr/share/php/zf kopiert habe, dann wäre der vollständige Pfad, den ich zu meinem include_path hinzufüge, für den Extras Incubator /usr/share/php/zf/extras/incubator/library. Mit dieser Hilfe sollten Sie nun Ihre php.ini anpassen können (keine schlechte Idee) und ich werde Ihnen in späteren Kapiteln zeigen, wie Sie den include_path für Zend-Framework-Anwendungen setzen können, wenn Sie php.ini nicht modifizieren wollen.

Kopieren Sie nun die Dateien des Frameworks an einen fixen Ort. Ich verwende unter Ubuntu /usr/share/php/zf, aber auch jede andere Stelle wird funktionieren. Vergessen Sie nur nicht, wo Sie die Dateien abgelegt haben!

4.3.2. Checkout aus Subversion

Wenn Sie lieber auf dem letzten Stand des aktiven Entwicklungszweigs (trunk) bleiben oder direkt Aktualisierungen für den Zweig der zuletzt veröffentlichten Version beziehen möchten, können Sie auch ein "checkout" des Frameworks aus dem Subversion-Repository unter http://framework.zend.com/svn/framework/ vornehmen. Subversion ist ein Versionsverwaltungssystem, das Entwickler verwenden, um den Quelltext zentral und online zu verwalten. Somit können viele Entwickler am gleichen Code arbeiten, ohne ständig Notizen austauschen oder abwechselnd arbeiten zu müssen.

Ich würde vorschlagen, ein dauerhaftes Verzeichnis wie /usr/share/php/zf zu erstellen und ein Checkout des Repositories in das Verzeichnis vorzunehmen. Das einzige Problem mit Subversion ist, dass Sie eine Menge (mit einer Menge meine ich eine überwältigende, abwegige Anzahl) von Dateien erhalten, wenn Sie alle Branches und Tags miteinbeziehen. Wollen Sie nur die benötigten Dateien von Subversion beziehen, müssen Sie vier seperate Checkouts vornehmen, um nur die Updates der Hauptversionen der vier Hauptsammlungen zu erhalten. Die URLs lauten:

Standard: http://framework.zend.com/svn/framework/standard/trunk/library/
Standard Incubator: http://framework.zend.com/svn/framework/standard/incubator/library/
Extras: http://framework.zend.com/svn/framework/extras/trunk/library/
Extras Incubator: http://framework.zend.com/svn/framework/extras/incubator/library/

Falls die Verwendung des trunks nicht Ihr Ding ist, können Sie stattdessen den relevanten Release-Zweig für jede Sammlung verwenden.

Der einfachste Weg, das zu bewerkstelligen ist, wie üblich das übergeordnete Verzeichnis zu erstellen, zum Beispiel unter /usr/share/php/zf, und innerhalb dieses Verzeichnis den Befehl für ein SVN-Checkout auszuführen, wobei Sie vier andere Verzeichnisnamen entsprechend den Sammlungsnamen angeben, in etwa standard, standard_incubator, extras, extras_incubator.

Wenn Sie eine Aktualisierung hin zum neuesten Entwicklungscode vornehmen möchten, müssen Sie nur ein Subversion-Update für jedes dieser vier Verzeichnisse vornehmen.

4.3.3. Download als Linux-Distributions-Package

Es gibt eine dritte Möglichkeit: holen Sie sich das Framework vom Update-Server Ihrer Linux-Distribution unter Verwendung von apt-get oder aptitude (falls Sie eine auf Debian basierende Distribution verwenden). Ich rate Ihnen jedoch sehr davon ab, denn Sie erhalten möglicherweise eine Version des Frameworks, die Monate hinter der aktuellen Version zurückliegt. Damit gehen Sie ein grenzwertiges Risiko ein, falls Sie dann eine Version mit einem großen Sicherheitsproblem verwenden (was passieren kann). Unter Ubuntu würden Sie einfach einen Befehl ähnlich wie diesen ausführen:

sudo aptitude install zendframework

Falls Sie sicher sind, dass der Update-Server Ihrer Distribution die neueste Version anbietet, dann überlegen Sie sich diese Methode einzusetzen. Als dieses Kapitel geschrieben wurde, schien das allerdings nicht der Fall zu sein.

4.3.4. Nightly-Build-Download

Ich werde nicht näher darauf eingehen, da dies auf der Website des Zend Frameworke momentan nicht funktioniert. Zukünftig könnten Sie so aber auch ohne Subversion den aktuellsten "Nightly Build" beziehen.

4.4. Nach der Installation

So viel zur Installation des Zend Framework. Das einzig komplizierte ist vielleicht sich dessen bewusst zu werden, dass der Quelltext in vier individuelle Pakete unterteilt ist, von denen jeder einzeln im Bedarfsfall zum include_path von PHP hinzugefügt werden muss. Wenn für Sie das Editieren von php.ini kein Problem ist, können Sie das sofort erledigen. Wenn Sie das tun, empfehle ich Ihnen die Pfade so anzuordnen, dass der Pfad zum Incubator zuletzt berücksichtigt wird. Somit ist sichergestellt, dass die Komponentenklassen aus dem Incubator nicht gegenüber den anderen, etablierten bevorzugt werden, aber zugleich kann auf neue Incubator-Komponenten zugegriffen werden. Wie im Anhang dieses Buches beschrieben, bringt diese Ordnung der Include-Pfade auch einen kleinen Leistungsgewinn.