Verwenden des CLI Tools

Das CLI, oder Kommandozeilen Tool (Intern als Consolen Tool bekannt), ist aktuell das primäre Interface für die Bearbeitung von Zend_Tool Anfragen. Mit dem CLI Tool können Entwickler werkmäßige Anfragen in einem "Kommandozeilen Fenster", allgemein bekannt als "Terminal", erstellen. Diese Umgebung ist in einer *nix Umgebung vorherrschend, hat aber auch eine bekannte Implementation in Windows, mit cmd.exe, Console2 und auch dem Cygwin Projekt.

Vorbereiten des CLI Tools

Um werkmäßige Anfragen über den Kommandozeilen Client zu erstellen, muß man zuerst den Client einrichten, damit das System das "zf" Kommando behandeln kann. Der Kommandozeilen Client für alle Wünsche und Zwecke, ust die .sh oder .bat Datei die mit der Distribution von Zend Framework ausgeliefert wurde. Im Trunk kann sie hier gefunden werden: http://framework.zend.com/svn/framework/standard/trunk/bin/.

Wie man siehr gibt es im /bin/ Verzeichnis 3 Dateien: zf.php, zf.sh und zf.bat. zf.sh und zf.bat sind spezielle Client-Wrapper für das Betriebssystem: zf.sh für *nix Umgebungen, und zf.bat für Win32 Umgebungen. Diese Client-Wrapper sind dafür zuständig die richtige php.exe und zf.php zu finden, sowie die Anfrage des Clients weiterzugeben. zf.php ist dafür zuständig die Umgebung zu verstehen, den richtigen include_path zu erstellen, und das an die richtigen Komponenten der Bibliothek für die Verarbeitung zu übergeben was über die Kommandozeile übergeben wurde.

Ultimativ muß man zwei Dinge sicherstellen das alles funktioniert, unabhängig davon auf welchem Betriebssystem man ist:

  1. zf.sh/zf.bat ist vom Systempfad aus erreichbar. Das ist die Möglichkeit zf überall von der Kommandozeile aus aufzurufen, unabhängig davon welches das aktuelle Arbeitsverzeichnis ist.

  2. ZendFramework/library ist im eigenen include_path.

Anmerkung

Beachte: während das oben stehende die idealsten Voraussetzungen sind, kann man einfach Zend Framework herunterladen und erwarten das es mit ./path/to/zf.php funktioniert.

Das CLI Tool in Unix-artigen Systemen vorbereiten

Das übliche Setup in einer *nix Umgebung, besteht darin zf.sh und zf.php in das gleiche Verzeichnis wie die PHP Binaries zu kopieren. Diese können normalerweise an einem der folgenden Plätze gefunden werden:

/usr/bin
/usr/local/bin
/usr/local/ZendServer/bin/
/Applications/ZendServer/bin/

Um den Ort der PHP Binaries herauszufinden, kann man 'which php' auf der Kommandozeile ausführen. Das gibt den Ort der PHP Binaries zurück, die verwendet werden wenn PHP Skripte in der eigenen Umgebung ausgeführt werden.

Der nächste Arbeitsschritt besteht darin, sicherzustellen das die Zend Framework Bibliothek richtig im include_path vom PHP System steht. Um herauszufinden wo der include_path ist, kann man php -i ausführen und nach der include_path Variable sehen, oder kompakter einfach php -i | grep include_path ausführen. Sobald man herausgefunden hat wo die include_path Variable steht (das ist normalerweise etwas wie /usr/lib/php, /usr/share/php, /usr/local/lib/php, oder ähnliches), muß man sicherstellen das der Inhalt des /library/ Verzeichnisses im spezifizierten Verzeichnis des include_path's abgelegt sind.

Sobald man diese zwei Dinge getan hat, sollte man in der Lage sein ein Kommando auszuführen und die richtige Antwort, ähnlich der folgenden, zurückzugekommen:

Wenn man diese Art der Ausgabe nicht sieht, muß man zurückgehen und das Setup prüfen um sicherzustellen das alle notwendigen Teile am richtigen Platz stehen.

Es gibt eine Anzahl von alternativen Setup die man eventuell verwenden will, abhängig von der Server Konfiguration, dem Zugriffslevel, oder aus anderen Gründen.

Alternative Setup bedeutet das der Zend Framework Download so wie er ist zusammenbleibt, und ein Link von einem PATH Ort zur Datei zf.sh erstellt wird. Das bedeutet das man den Inhalt des ZendFramework Downloads an einem Ort wie /usr/local/share/ZendFramework, oder noch lokaler wie /home/username/lib/ZendFramework platzieren kann, und einen Symbolischen Link zu zf.sh erstellt.

Angenommen man will den Link nach /usr/local/bin geben (das könnte auch funktionieren wenn der Link in /home/username/bin/ platziert werden soll), dann könnte man ein Kommando ähnlich dem folgenden ausführen:

ln -s /usr/local/share/ZendFramework/bin/zf.sh /usr/local/bin/zf

# ODER (zum Beispiel)
ln -s /home/username/lib/ZendFramework/bin/zf.sh /home/username/bin/zf

Das erstellt einen Link den man global von der Kommandozeile aus aufrufen können sollte.

Das CLI Tool in Windows vorbereiten

Das üblichste Setup in einer Windows Win32 Umgebung besteht darin, zf.bat und zf.php in das gleiche Verzeichnis wie die PHP Binaries zu kopieren. Diese können generell an einem der folgenden Plätze gefunden werden:

C:\PHP
C:\Program Files\ZendServer\bin\
C:\WAMP\PHP\bin

Man sollte in der Lage sein php.exe auf der Kommandozeile auszuführen. Wenn man das nicht kann, muß man zuerst die Dokumentation prüfen die mit der PHP Distribution gekommen ist, oder sicherstellen das der Pfad zu php.exe in der Windows Umgebungsvariable PATH vorhanden ist.

Der nächste Arbeitsschritt besteht darin, sicherzustellen das die Zend Framework Bibliothek richtig im include_path vom PHP System steht. Um herauszufinden wo der include_path ist, kann man php -i ausführen und nach der include_path Variable sehen, oder kompakter einfach php -i | grep include_path ausführen wenn Cygwin mit grep zur Verfügung steht. Sobald man herausgefunden hat wo die include_path Variable steht (das ist normalerweise etwas wie C:\PHP\pear, C:\PHP\share, C:\Program%20Files\ZendServer\share oder ähnliches), muß man sicherstellen das der Inhalt des library/ Verzeichnisses im spezifizierten Verzeichnis des include_path's abgelegt sind.

Sobald man diese zwei Dinge getan hat, sollte man in der Lage sein ein Kommando auszuführen und die richtige Antwort, ähnlich der folgenden, zurückzugekommen:

Wenn man diese Art der Ausgabe nicht sieht, muß man zurückgehen und das Setup prüfen um sicherzustellen das alle notwendigen Teile am richtigen Platz stehen.

Es gibt eine Anzahl von alternativen Setup die man eventuell verwenden will, abhängig von der Server Konfiguration, dem Zugriffslevel, oder aus anderen Gründen.

Alternative Setup bedeutet das der Zend Framework Download so wie er ist zusammenbleibt, und sowohl die Systemvariable PATH als auch die php.ini Datei geändert werden muss. In der Umgebung des Benutzers muss man sicherstellen das C:\Path\To\ZendFramework\bin hinzugefügt ist, damit die Datei zf.bat ausgeführt werden kann. Auch die Datei php.ini ist zu Ändern um sicherzustellen das C:\Path\To\ZendFramework\library im include_path ist.

Andere Überlegungen für ein Setup

Wenn man aus bestimmten Gründen die Zend Framework Bibliothek nicht im include_path haben will, gibt es auch eine andere Option. Es gibt auch zwei spezielle Umgebungsvariablen die zf.php verwendet um den Ort der Installation vom Zend Framework zu erkennen.

Der erste ist ZEND_TOOL_INCLUDE_PATH_PREPEND, welcher den Wert dieser Umgebungsvariablen dem include_path des Systems (php.ini) voranstellt, bevor der Client geladen wird.

Alternativ kann es gewünscht sein ZEND_TOOL_INCLUDE_PATH zu verwenden, um den include_path des System komplett zu ersetzen, wenn das speziell für das zf Kommandozeilen Tool Sinn macht.

Wohin als nächstes?

An diesem Punkt sollte man dafür gerüstet sein einige "interessantere" Kommandos zu initialisieren. Um weiterzumachen kann man das Kommando zf --help ausführen um zu sehen was vorhanden ist.

Lesen Sie bei Zend_Tool_Project im Kapitel "Create Project" weiter um zu verstehen wie das zf Skript für die Projekterstellung verwendet werden kann.