<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 16656 -->
<!-- Reviewed: no -->
<sect1 id="zend.tool.framework.clitool">
    <title>Verwenden des CLI Tools</title>

    <para>
        Das <acronym>CLI</acronym>, oder Kommandozeilen Tool (Intern als Consolen Tool bekannt),
        ist aktuell das primäre Interface für die  Bearbeitung von <classname>Zend_Tool</classname>
        Anfragen. Mit dem <acronym>CLI</acronym> 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 <filename>cmd.exe</filename>, Console2 und auch dem Cygwin Projekt.
    </para>

    <sect2 id="zend.tool.framework.clitool.setup-general">
        <title>Vorbereiten des CLI Tools</title>

        <para>
            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 <filename>.sh</filename>
            oder <filename>.bat</filename> Datei die mit der Distribution von Zend Framework
            ausgeliefert wurde. Im Trunk kann sie hier gefunden werden: <ulink
                url="http://framework.zend.com/svn/framework/standard/trunk/bin/">http://framework.zend.com/svn/framework/standard/trunk/bin/</ulink>.
        </para>

        <para>
            Wie man siehr gibt es im <filename>/bin/</filename> Verzeichnis 3 Dateien:
            <filename>zf.php</filename>, <filename>zf.sh</filename> und
            <filename>zf.bat</filename>. <filename>zf.sh</filename> und <filename>zf.bat</filename>
            sind spezielle Client-Wrapper für das Betriebssystem: <filename>zf.sh</filename> für
            *nix Umgebungen, und <filename>zf.bat</filename> für Win32 Umgebungen. Diese
            Client-Wrapper sind dafür zuständig die richtige <filename>php.exe</filename> und
            <filename>zf.php</filename> zu finden, sowie die Anfrage des Clients weiterzugeben.
            <filename>zf.php</filename> 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.
        </para>

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

        <orderedlist>
            <listitem>
                <para>
                    <filename>zf.sh/zf.bat</filename> ist vom Systempfad aus erreichbar. Das ist
                    die Möglichkeit <command>zf</command> überall von der Kommandozeile aus
                    aufzurufen, unabhängig davon welches das aktuelle Arbeitsverzeichnis ist.
                </para>
            </listitem>
            <listitem>
                <para>
                    <filename>ZendFramework/library</filename> ist im eigenen
                    <property>include_path</property>.
                </para>
            </listitem>
        </orderedlist>

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

    </sect2>

    <sect2 id="zend.tool.framework.clitool.setup-starnix">
        <title>Das CLI Tool in Unix-artigen Systemen vorbereiten</title>

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

        <programlisting language="text"><![CDATA[
/usr/bin
/usr/local/bin
/usr/local/ZendServer/bin/
/Applications/ZendServer/bin/
]]></programlisting>

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

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

        <para>
            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:
        </para>

        <para>
            <inlinegraphic scale="100" align="center" valign="middle"
                fileref="figures/zend.tool.framework.cliversionunix.png" format="PNG" />
        </para>

        <para>
            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.
        </para>

        <para>
            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.
        </para>

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

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

        <programlisting language="sh"><![CDATA[
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
]]></programlisting>

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

    </sect2>

    <sect2 id="zend.tool.framework.clitool.setup-windows">
        <title>Das CLI Tool in Windows vorbereiten</title>

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

        <programlisting language="text"><![CDATA[
C:\PHP
C:\Program Files\ZendServer\bin\
C:\WAMP\PHP\bin
]]></programlisting>

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

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

        <para>
            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:
        </para>

        <para>
            <inlinegraphic scale="100" align="center" valign="middle"
                fileref="figures/zend.tool.framework.cliversionwin32.png" format="PNG" />
        </para>

        <para>
            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.
        </para>

        <para>
            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.
        </para>

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

    </sect2>

    <sect2 id="zend.tool.framework.clitool.setup-othernotes">
        <title>Andere Überlegungen für ein Setup</title>

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

        <para>
            Der erste ist <constant>ZEND_TOOL_INCLUDE_PATH_PREPEND</constant>, welcher den Wert
            dieser Umgebungsvariablen dem <property>include_path</property> des Systems
            (<filename>php.ini</filename>) voranstellt, bevor der Client geladen wird.
        </para>

        <para>
            Alternativ kann es gewünscht sein <constant>ZEND_TOOL_INCLUDE_PATH</constant> zu
            verwenden, um den <property>include_path</property> des System komplett zu
            <emphasis>ersetzen</emphasis>, wenn das speziell für das <command>zf</command>
            Kommandozeilen Tool Sinn macht.
        </para>
    </sect2>

    <sect2 id="zend.tool.framework.clitool.continuing">
        <title>Wohin als nächstes?</title>

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

        <para>
            <inlinegraphic scale="100" align="center" valign="middle"
                fileref="figures/zend.tool.framework.clihelp.png" format="PNG" />
        </para>

        <para>
            Lesen Sie bei <classname>Zend_Tool_Project</classname> im Kapitel "Create Project"
            weiter um zu verstehen wie das <command>zf</command> Skript für die Projekterstellung
            verwendet werden kann.
        </para>
    </sect2>
</sect1>
