| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 22745 -->
- <!-- Reviewed: 22745 -->
- <sect1 id="zend.tool.usage.cli">
- <title>Verwendung von Zend_Tool auf der Kommandozeile</title>
- <para>
- Das <acronym>CLI</acronym>, oder Kommandozeilentool (intern bekannt als Konsolen Tool),
- 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 Tooling Anfragen im
- "Kommandozeilen Fenster", auch bekannt als "Terminal" Fenster, auslösen. Diese Umgebung ist
- vorherrschend bei *nix Umgebungen, es gibt aber auch übliche Implementationen unter Windows
- mit <filename>cmd.exe</filename>, Console2 und auch im Cygwin Projekt.
- </para>
- <!--
- <sect2 id="zend.tool.usage.cli.introduction">
- <title>Einführung</title>
- </sect2>
- -->
- <sect2 id="zend.tool.usage.cli.installation">
- <title>Installation</title>
- <sect3 id="zend.tool.usage.cli.installation.download-and-go">
- <title>Herunterladen und anfangen</title>
- <para>
- Zuerst muss Zend Framework heruntergeladen werden. Dazu geht man auf die
- Seite framework.zend.com und lädt das letzte Release herunter. Nachdem man das
- Paket heruntergeladen und auf dem System plaziert hat, ist der nächste Schritt das
- zf Kommendo auf dem System zu erstellen. Der einfachste Weg dafür ist, die
- richtigen Dateien vom bin/ Verzeichnis des Downloads zu kopieren, und diese Dateien
- im <emphasis>gleichen</emphasis> Verzeichnis zu platzieren wie die
- PHP CLI Binardatei.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.installation.pear">
- <title>Installation über Pear</title>
- <para>
- Um es über PEAR zu installieren, muss man die 3rd Party Site zfcampus.org verwenden
- um das letzte Zend Framework PEAR Paket zu installieren. Diese Pakete werden
- typischerweise innerhalb eines Tages nach einem offiziellen Zend Framework Release
- erstellt. Der Vorteil der Installation über den PEAR Package Manager ist, dass die
- ZF Bibliothek im include_path landet, und die zf.php und ZF Skripte an einem Ort im
- eigenen System landen, der es erlaubt sie ohne zusätzliches Setup zu starten.
- </para>
- <programlisting language="text"><![CDATA[
- pear channel-discover pear.zfcampus.org
- pear install zfcampus/zf
- ]]></programlisting>
- <para>
- Das ist es schon. Nach dem initialen Setup sollte man in der Lage sein, weiter zu
- machen indem das zf Kommando ausgeführt wird. Ein guter Weg um zu prüfen, ob es
- vorhanden ist, ist es zf --help auszuführen.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.installation.install-by-hand">
- <title>Installation von Hand</title>
- <para>
- Die Installtion von Hand zeigt das Verfahren, wie zf.php und die Zend Framework
- Bibliothek dazu gebracht werden zusammen zu arbeiten, wenn diese nicht an konventionellen
- Orten abgelegt wurden, oder zumindest, an einem Ort an dem das eigene System diese
- nicht einfach ausführen kann (was normalerweise für Programme im eigenen System Pfad gilt).
- </para>
- <para>
- Wenn man auf einem *nix oder Mac System ist, kann man auch einen Link von irgendwo
- im eigenen Pfad zur zf.sh Datei erstellen. Dabei muss man sich keine
- Gedanken darüber machen, ob die Zend Framework Bibliothek im eigenen include_path
- ist, da die Dateien zf.php und zf.sh auf die Bibliothek zugreifen können, relativ zu deren
- Standort, (was bedeutet das die ./bin/ Dateien relativ zu ../library/ der
- Zend Framework Bibliothek sind).
- </para>
- <para>
- Es gibt eine Anzahl von anderen vorhandenen Optionen für das Setup von zf.php und
- der Bibliothek im eigenen System. Diese Optionen drehen sich um das Setzen von
- speziellen Umgebungsvariablen. Diese werden im späteren Kapitel "Die CLI Umgebung
- anpassen" beschrieben. Die Umgebungsvariablen für das Setzen von include_path,
- ZF_INCLUDE_PATH und ZF_INCLUDE_PATH_PREPEND für zf.php sind die interessantesten.
- </para>
- </sect3>
- </sect2>
- <sect2 id="zend.tool.usage.cli.general-purpose-commands">
- <title>Kommandos für allgemeine Zwecke</title>
- <sect3 id="zend.tool.usage.cli.general-purpose-commands.version">
- <title>Version</title>
- <para>
- Das zeigt die aktuelle Versionsnummer der Kopie des Zend Framework, welche das zf.php
- Tool verwendet.
- </para>
- <programlisting language="text"><![CDATA[
- zf show version
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.general-purpose-commands.built-in-help">
- <title>Eingebaute Hilfe</title>
- <para>
- Das eingebaute Hilfesystem ist der erste Ort an dem man aktuelle Informationen
- darüber erhält, was das eigene System in der Lage ist zu tun. Das Hilfesystem ist
- dahingehend dynamisch, dass Provider dem eigenen System hinzugefügt und
- automatisch ausgeführt werden, und von daher werden die für die Ausführung
- notwendigen Parameter im Hilfebildschirm vorhanden. Der einfachste Weg um
- den Hilfebildschirm zu erhalten, ist der folgende:
- </para>
- <programlisting language="text"><![CDATA[
- zf --help
- ]]></programlisting>
- <para>
- Das gibt einen Überblick über die verschiedenen Möglichkeiten des Systems. Manchmal
- gibt es komplexere Kommandos, die ausgeführt werden können, und um mehr
- Informationen über sie zu erhalten, muss man einen spezielles Hilfebefehl
- ausführen. Für die spezialisierte Hilfe muss einfach eines der Elemente des
- Kommandos mit einem "?" ersetzt werden. Das sagt dem Hilfesystem, dass man mehr
- Informationen darüber will, welche Kommandos an Stelle des Fragezeichens stehen
- können. Zum Beispiel:
- </para>
- <programlisting language="text"><![CDATA[
- zf ? controller
- ]]></programlisting>
- <para>
- Das obige bedeutet "zeig mir alle 'Aktionen' für den Provider 'controller'"; während
- das folgende:
- </para>
- <programlisting language="text"><![CDATA[
- zf show ?
- ]]></programlisting>
- <para>
- bedeutet "zeig mit alle Provider welche die 'show' Aktion unterstützen. Das funktioniert
- auch, wenn man es für Optionen anwendet, wie man im folgenden Beispiel sehen kann:
- </para>
- <programlisting language="text"><![CDATA[
- zf show version.? (zeige alle Spezialitäten)
- zf show version ? (zeige alle Optionen)
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.general-purpose-commands.manifest">
- <title>Manifest</title>
- <para>
- Das zeigt welche Informationen im Tooling System Manifest sind. Das ist wichtiger
- für Entwickler von Providers als für normale Benutzer des Tooling Systems.
- </para>
- <programlisting language="text"><![CDATA[
- zf show manifest
- ]]></programlisting>
- </sect3>
- <!--
- <sect3 id="zend.tool.usage.cli.general-purpose-commands.tool-configuration">
- <title>Tool Konfiguration</title>
- <para>Platzhalter, benötigt Handbuch von @beberli</para>
- </sect3>
- -->
- </sect2>
- <sect2 id="zend.tool.usage.cli.project-specific-commands">
- <title>Projektspezifische Kommandos</title>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.project">
- <title>Project</title>
- <para>
- Der Projekt-Provider ist das erste Kommando, das man ausführen könnte. Er
- erstellt die grundsätzliche Struktur der Anwendung. Er wird benötigt, bevor irgendein
- anderer Provider ausgeführt werden kann.
- </para>
- <programlisting language="text"><![CDATA[
- zf create project MyProjectName
- ]]></programlisting>
- <para>
- Dies erstellt ein Projekt im ./MyProjectName genannten Verzeichnis. Von diesem Punkt
- an, ist es wichtig anzumerken, dass jedes weitere Kommando in der Kommandozeile von
- innerhalb des Projektverzeichnisses auszuführen ist, welches gerade erstellt wurde.
- Nach dessen Erstellung ist es also notwendig, dass man in das Verzeichnis wechselt.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.module">
- <title>Module</title>
- <para>
- Der Module Provider erlaubt die einfache Erstellung eines Zend Framework Moduls. Ein
- Modul folgt lose dem MVC Pattern. Wenn Module erstellt werden, verwenden sie die
- gleiche Struktur, welche im application/ Level verwendet wird, und dupliziert diese
- im ausgewählten Namen für das Modul, innerhalb des Verzeichnisses "modules" im
- Verzeichnis application/ ohne dass das Modul Verzeichnis selbst dupliziert wird.
- Zum Beispiel:
- </para>
- <programlisting language="text"><![CDATA[
- zf create module Blog
- ]]></programlisting>
- <para>
- Das erstellt ein Modul welches Blog genannt wird unter application/modules/Blog, und
- alle Abschnitte welche das Modul benötigt.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.controller">
- <title>Controller</title>
- <para>
- Der Controller Provider ist (meistens) für die Erstellung leerer Controller
- zuständig sowie deren entsprechenden Verzeichnissen und Dateien für View Skripte.
- Um ihn zum Beispiel dazu zu verwenden, einen 'Auth' Controller zu erstellen, muss
- folgendes ausgeführt werden:
- </para>
- <programlisting language="text"><![CDATA[
- zf create controller Auth
- ]]></programlisting>
- <para>
- Das erstellt einen Controller der Auth heißt, und im speziellen wird eine Datei
- unter application/controllers/AuthController.php erstellt, welche den AuthController
- enthält. Wenn man einen Controller für ein Modul erstellen will, kann eine der
- folgenden Zeilen verwendet werden:
- </para>
- <programlisting language="text"><![CDATA[
- zf create controller Post 1 Blog
- zf create controller Post -m Blog
- zf create controller Post --module=Blog
- ]]></programlisting>
- <para>
- Beachte: Im ersten Kommando ist der Wert 1 für das "includeIndexAction" Flag.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.action">
- <title>Action</title>
- <para>
- Um eine Action in einem bestehenden Controller zu erstellen:
- </para>
- <programlisting language="text"><![CDATA[
- zf create action login Auth
- zf create action login -c Auth
- zf create action login --controller-name=Auth
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.view">
- <title>View</title>
- <para>
- Um eine View ausserhalb der normalen Controller/Action Erstellung zu erstellen
- würde man eine der folgenden Zeilen verwenden:
- </para>
- <programlisting language="text"><![CDATA[
- zf create view Auth my-script-name
- zf create view -c Auth -a my-script-name
- ]]></programlisting>
- <para>
- Das erstellt ein View Skript im Controller Verzeichnis von Auth.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.model">
- <title>Model</title>
- <para>
- Der Model Provider ist nur für die Erstellung der richtigen Modell Dateien, mit dem
- richtigen Namen im Anwendungsverzeichnis zuständig. Zum Beispiel:
- </para>
- <programlisting language="text"><![CDATA[
- zf create model User
- ]]></programlisting>
- <para>
- Wenn man ein Modell mit einem spezifischen Modul erstellen will:
- </para>
- <programlisting language="text"><![CDATA[
- zf create model Post -m Blog
- ]]></programlisting>
- <para>
- Das obige erstellt ein 'Post' Modell im Modul 'Blog'.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.form">
- <title>Form</title>
- <para>
- Der Form Provider ist nur für die Erstellung der richtigen Formulardateien und der
- init() Methode, mit dem richtigen Namen im Anwendungsverzeichnis zuständig. Zum
- Beispiel:
- </para>
- <programlisting language="text"><![CDATA[
- zf create form Auth
- ]]></programlisting>
- <para>
- Wenn man ein Modell in einem spezifischen Modul erstellen will:
- </para>
- <programlisting language="text"><![CDATA[
- zf create form Comment -m Blog
- ]]></programlisting>
- <para>
- Das obige erstellt ein 'Comment' Formular im Modul 'Blog'.
- </para>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.database-adapter">
- <title>DbAdapter</title>
- <para>
- Um einen DbAdapter zu konfigurieren muss man die Informationen als Url kodierten
- String angeben. Dieser String muss in der Kommandozeile in Hochkommas stehen.
- </para>
- <para>
- Um zum Beispiel die folgenden Informationen einzugeben:
- <itemizedlist>
- <listitem><para>adapter: Pdo_Mysql</para></listitem>
- <listitem><para>username: test</para></listitem>
- <listitem><para>password: test</para></listitem>
- <listitem><para>dbname: test </para></listitem>
- </itemizedlist>
- Muss das folgende auf der Kommandozeile ausgeführt werden:
- </para>
- <programlisting language="text"><![CDATA[
- zf configure dbadapter "adapter=Pdo_Mysql&username=test&password=test&dbname=test"
- ]]></programlisting>
- <para>
- Dies nimmt an das man diese Information im Abschnitt 'production' der
- Konfigurationsdatei der Anwendung speichern will. Das folgende demonstriert eine
- Sqlite Konfiguration im Abschnitt 'development' der Konfigurationsdatei der
- Anwendung:
- </para>
- <programlisting language="text"><![CDATA[
- zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" development
- zf configure dbadapter "adapter=Pdo_Sqlite&dbname=../data/test.db" -s development
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.db-table">
- <title>DbTable</title>
- <para>
- Der DbTable Provider ist für die Erstellung der <classname>Zend_Db_Table</classname>
- Modell/Datenzugriffs-Dateien, der Anwendung die sie benötigt, verantwortlich.
- Zusammen mit dem richtigen Klassennamen und dem richtigen Platz in der Anwendung.
- Die zwei wichtigsten Informationsteile sind <emphasis>DbTable Name</emphasis> und
- der <emphasis>aktuelle Name der Datenbank Tabelle</emphasis>. Zum Beispiel:
- </para>
- <programlisting language="text"><![CDATA[
- zf create dbtable User user
- zf create dbtable User -a user
- // akzeptiert auch eine "erzwinge" Option
- // um existierende Dateien zu überschreiben
- zf create dbtable User user -f
- zf create dbtable User user --force-override
- ]]></programlisting>
- <para>
- Der DbTable Provider ist auch dazu in der Lage die richtigen Daten zu erstellen
- indem er die Datenbank scannt, die mit dem obigen DbAdapter Provider konfiguriert
- wurde.
- </para>
- <programlisting language="text"><![CDATA[
- zf create dbtable.from-database
- ]]></programlisting>
- <para>
- Wenn das obenstehende ausgeführt wird, könnte es Sinn machen das Vortäuschen-Flag
- ("-p") zuerst zu verwenden, damit man sieht, was getan werden würde und welche
- Tabellen in der Datenbank gefunden werden können.
- </para>
- <programlisting language="text"><![CDATA[
- zf -p create dbtable.from-database
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.project-specific-commands.layout">
- <title>Layout</title>
- <para>
- Aktuell ist die einzige unterstützte Aktion für Layouts einfach deren Aktivierung,
- damit die richtigen Schlüssel in die Datei application.ini geschrieben werden
- damit die Anwendungs Ressource funktioniert und die richtigen Verzeichnisse und die
- Datei layout.phtml erstellt wird.
- </para>
- <programlisting language="text"><![CDATA[
- zf enable layout
- ]]></programlisting>
- </sect3>
- </sect2>
- <sect2 id="zend.tool.usage.cli.environment-customization">
- <title>Anpassung der Umgebung</title>
- <sect3 id="zend.tool.usage.cli.environment-customization.storage-directory">
- <title>Das Speicherverzeichnis</title>
- <para>
- Das Speicherverzeichnis ist wichtig, damit Provider einen Platz haben, an dem sie die
- Benutzer-definierte Logik finden, welche die Art verändern könnte, wie sie sich
- verhalten. Ein Beispiel welches unten angegeben ist, bewirkt die Platzierung einer
- eigenen Projekt Profil Datei.
- </para>
- <programlisting language="text"><![CDATA[
- zf --setup storage-directory
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.environment-customization.configuration-file">
- <title>Die Konfigurationsdatei</title>
- <para>
- Das erstellt die richtige zf.ini Datei. Dies <emphasis>sollte</emphasis> nach
- <command>zf --setup storage-directory</command> ausgeführt werden. Wenn dem nicht so
- ist, wird sie im Home-Verzeichnis des Benutzers platziert. Aber wenn dem so ist,
- dann wird sie im benutzerdefinierten Speicherverzeichnis platziert.
- </para>
- <programlisting language="text"><![CDATA[
- zf --setup config-file
- ]]></programlisting>
- </sect3>
- <sect3 id="zend.tool.usage.cli.environment-customization.environment-locations">
- <title>Orte der Umgebung</title>
- <para>
- Diese sollten gesetzt werden, wenn man die standardmäßigen Orte überschreiben will, an
- denen ZF versucht seine Werte zu lesen.
- </para>
- <itemizedlist>
- <listitem>
- <para>ZF_HOME</para>
- <itemizedlist>
- <listitem>
- <para>
- Das Verzeichnis, in dem dieses Tool nach dem Home-Verzeichnis
- nachsieht
- </para>
- </listitem>
- <listitem><para>Das Verzeichnis muss existieren</para></listitem>
- <listitem>
- <para>Suchrichtung:</para>
- <itemizedlist>
- <listitem><para>ZF_HOME Umgebungsvariable</para></listitem>
- <listitem><para>HOME Umgebungsvariable</para></listitem>
- <listitem><para>dann HOMEPATH Umgebungsvariable</para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>ZF_STORAGE_DIRECTORY</para>
- <itemizedlist>
- <listitem>
- <para>
- Wo dieses Tool nach dem Speicherverzeichnis nachsehen wird
- </para>
- </listitem>
- <listitem><para>Das Verzeichnis muss existieren</para></listitem>
- <listitem>
- <para>Suchrichtung:</para>
- <itemizedlist>
- <listitem>
- <para>ZF_STORAGE_DIRECTORY Umgebungsvariable</para>
- </listitem>
- <listitem><para>$homeDirectory/.zf/ Verzeichnis</para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>ZF_CONFIG_FILE</para>
- <itemizedlist>
- <listitem>
- <para>Wo dieses Tool nach der Konfigurationsdatei nachsieht</para>
- </listitem>
- <listitem>
- <para>Suchrichtung:</para>
- <itemizedlist>
- <listitem><para>ZF_CONFIG_FILE Umgebungsvariable</para></listitem>
- <listitem>
- <para>$homeDirectory/.zf.ini Datei wenn sie existiert</para>
- </listitem>
- <listitem>
- <para>$storageDirectory/zf.ini Datei wenn sie existiert</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>ZF_INCLUDE_PATH</para>
- <itemizedlist>
- <listitem>
- <para>
- Setzt den include_path der für dieses Tool verwendet werden soll
- auf diesen Wert
- </para>
- </listitem>
- <listitem>
- <para>Originales Verhalten:</para>
- <itemizedlist>
- <listitem>
- <para>Verwende include_path von PHP um ZF zu finden</para>
- </listitem>
- <listitem>
- <para>Verwende die Umgebungsvariable ZF_INCLUDE_PATH</para>
- </listitem>
- <listitem>
- <para>
- Verwende den Pfad ../library (relativ zu zf.php) um ZF zu
- finden
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <para>ZF_INCLUDE_PATH_PREPEND</para>
- <itemizedlist>
- <listitem>
- <para>
- Stellt diesen Wert dem aktuellen include_path in php.ini voran
- </para>
- </listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
|