Hallo, ich heiße Matthias Zeis - schön, dass Sie den Weg zu meiner Übersetzung von ZFSTDE gefunden haben!
Falls Sie mehr über Magento 2 oder meine Arbeit als Technical Lead bei LimeSoda erfahren möchten, kommen Sie doch auf meiner Website vorbei.
Inhaltsverzeichnis
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.
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.
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.
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!
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.
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.
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.