| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.tool.framework.extending">
- <title>Extending and Configuring Zend_Tool_Framework</title>
- <sect2 id="zend.tool.framework.console-client">
- <title>Anpassen des Zend_Tool Konsolen Clients</title>
- <para>
- Mit Zend Framework 1.9 erlaubt es <classname>Zend_Tool_Framework</classname> Entwicklern
- Informationen zu Speichern, Provider spezifische Konfigurationswerte, und eigene Dateien
- an einem speziellen Ort auf der Entwicklermaschine. Diese Konfigurationswerte und
- Dateien können von Providern verwendet werden um Funktionalität zu erweitern, sie
- anzupassen, oder aus einem anderen Grund welcher dem Provider passt.
- </para>
- <para>
- Der primäre Zwecke, und der warscheinlich wichtigste der von existierenden Providern
- verwendet wird, besteht darin es Entwicklern zu erlauben den Weg wie die
- "out of the box" Provider funktionieren zu verändern.
- </para>
- <para>
- Eines der üblichsten angefragten Features ist es, in der Lage zu sein
- <classname>Zend_Tool_Project</classname>'s Projekt Provider eigene Projekt Profile
- anzubieten. Das würde es Entwicklern erlauben ein eigenes Profil an einem speziellen
- Platz zu speichern, der wiederholt vom <classname>Zend_Tool</classname> System verwendet
- werden kann um eigene Profile zu erstellen. Ein anderes üblicherweise angefragtes
- Feature ist es in der Lage zu sein das Verhalten von Providern mit
- Konfigurationseinstellungen zu verändern. Um das zu tun benötigen wir nicht nur eine
- <classname>Zend_Tool</classname> Konfigurationsdatei, sondern auch einen Ort an dem wir
- diese Konfigurationsdatei finden können.
- </para>
- <sect3 id="zend.tool.framework.console-client.home-directory">
- <title>Das Home Verzeichnis</title>
- <para>
- Bevor der Konsolen Client beginnen kann nach einer <classname>Zend_Tool</classname>
- Konfigurationsdatei zu suchen, oder einem lokalen Speicherverzeichnis, muß er
- zuerst in der Lage sein zu erkennen wo das "Home Verzeichnis" liegt.
- </para>
- <para>
- Auf *nix basierten Maschinen, wird <acronym>PHP</acronym> mit einer
- Umgebungsvariable die <constant>HOME</constant> heißt, und dem Pfad zum Home
- Verzeichnis des aktuellen Benutzers, bekannt gegeben. Typischerweise ist dieser
- Pfad ähnlich wie <filename>/home/myusername</filename>.
- </para>
- <para>
- Auf Windows basierten Maschinen, wird <acronym>PHP</acronym> typischerweise mit
- einer Umgebungsvariable die <constant>HOMEPATH</constant> heißt, und dem Pfad zum
- Home Verzeichnis des aktuellen Benutzers, bekannt gegeben. Das Verzeichnis kann
- normalerweise, entweder unter
- <filename>C:\Documents and Settings\Username\</filename>, oder bei Vista unter
- <filename>C:\Users\Username</filename> gefunden werden.
- </para>
- <para>
- Wenn entweder das Home Verzeichnis nicht gefunden werden kann, oder man den Ort an
- dem der <classname>Zend_Tool_Framework</classname> Konsolen Client das Home
- Verzeichnis findet, ändern will kann man eine Umgebungsvariable die
- <constant>ZF_HOME</constant> heißt angeben um zu spezifizieren wo das Home
- Verzeichnis gefunden werden kann.
- </para>
- </sect3>
- <sect3 id="zend.tool.framework.console-client.local-storage">
- <title>Lokaler Speicher</title>
- <para>
- Sobald das Home Verzeichnis gefunden werden kann, kann
- <classname>Zend_Tool_Framework</classname>'s Konsolen Client entweder das lokale
- Speicher Verzeichnis automatisch erkennen, oder es kann Ihm mitgeteilt werden wo
- das lokale Speicherverzeichnis erwartet wird.
- </para>
- <para>
- Angenommen das Home Verzeichnis wurde gefunden (hier als <varname>$HOME</varname>
- bezeichnet), dann wird der Konsolen client nach dem lokalen Speicherverzeichnis
- unter <filename>$HOME/.zf/</filename> nachsehen. Wenn es gefunden wird, dann wird
- das lokale Speicherverzeichnis auf diesen Ort gesetzt.
- </para>
- <para>
- Wenn das Verzeichnis nicht gefunden werden kann, oder der Entwickler den Ort
- überschreiben will, kann man das durch Setzen einer Umgebungsvariable durchführen.
- Unabhängig davon ob <varname>$HOME</varname> vorher gesetzt wurde, kann der
- Entwickler die Umgebungsvariable <constant>ZF_STORAGE_DIR</constant> anbieten.
- </para>
- <para>
- Sobald der Pfad zu einem lokalen Speicherverzeichnis gefunden wurde,
- <emphasis>muss</emphasis> das Verzeichnis existieren damit es an die
- <classname>Zend_Tool_Framework</classname> Runtime übergeben werden kann, da dieses
- für Sie nicht erstellt wird.
- </para>
- </sect3>
- <sect3 id="zend.tool.framework.console-client.configuration-file">
- <title>Benutzer Konfiguration</title>
- <para>
- Wie beim lokalen Speicher kann <classname>Zend_Tool_Framework</classname>'s
- Konsolen Client, sobald ein Home Verzeichnis gefunden wurde, entweder versuchen den
- Pfad zu einer Konfigurationsdatei autoamtisch zu erkennen, oder es kann Ihm ganz
- spezifisch gesagt werden wo die Konfigurationsdatei gefunden werden kann.
- </para>
- <para>
- Angenommen das Home Verzeichnis wurde gefunden (hier als <varname>$HOME</varname>
- bezeichnet), dann wird der Konsolen Client versuchen nach der Existenz einer
- Konfigurationsdatei zu sehen die in <filename>$HOME/.zf.ini</filename> liegt.
- Diese Datei wird, wenn Sie gefunden wurde, als Konfigurationsdatei für
- <classname>Zend_Tool_Framework</classname> verwendet.
- </para>
- <para>
- Wenn der Ort nicht existiert, aber das lokale Speicherverzeichnis, dann wird der
- Konsolen Client versuchen die Konfigurationsdatei im lokalen Speicherverzeichnis zu
- finden. Angenommen das lokale Speicherverzeichnis existiert in
- <varname>$LOCAL_STORAGE</varname>, und eine Datei existiert als
- <filename>$LOCAL_STORAGE/zf.ini</filename>, dann wird diese vom Konsolen Client
- gefunden und als <classname>Zend_Tool_Framework</classname> Konfigurationsdatei
- verwendet.
- </para>
- <para>
- Wenn die Datei nicht automatisch erkannt werden kann, oder der Entwickler den Ort
- der Konfigurationsdatei spezifizieren will, kann er das durch Setzen einer
- Umgebungsvariable tun. Wenn die Umgebungsvariable
- <constant>ZF_CONFIG_FILE</constant> gesetzt ist, dann wird dieser Wert als Ort der
- Konfigurationsdatei verwendet die mit dem Konsolen Client zu verwenden ist.
- <constant>ZF_CONFIG_FILE</constant> kann auf irgendeine <acronym>INI</acronym>,
- <acronym>XML</acronym> oder <acronym>PHP</acronym> Datei zeigen die
- <classname>Zend_Config</classname> lesen kann.
- </para>
- <para>
- Wenn die Datei weder an der automatisch erkannten, noch an der angegebenen Position
- existiert, dann wird Sie nicht verwendet da
- <classname>Zend_Tool_Framework</classname> nicht versucht diese Datei automatisch
- zu erstellen.
- </para>
- </sect3>
- <sect3 id="zend.tool.framework.console-client.configuration-content">
- <title>Inhalt der Benutzer Konfigurationsdatei</title>
- <para>
- Die Konfigurationdatei sollte als <classname>Zend_Config</classname>
- Konfigurationdatei, im <acronym>INI</acronym> format, strukturiert sein und ohne
- zusätzliche definierte Sektionen. Schlüssel des ersten Levels sollten vom Provider
- verwendet werden um nach einem speziellen Wert zu suchen. Wenn der "Project"
- Provider zum Beispiel ein "profiles" Verzeichnis erwartet, dann sollte
- typischerweise darunter verstanden werden das er im folgenden Schlüssel Wertpaar
- gesucht wird:
- </para>
- <programlisting language="php"><![CDATA[
- project.profile = irgendein/pfad/zu/irgendeinem-verzeichnis
- ]]></programlisting>
- <para>
- Der einzige reservierte <acronym>INI</acronym> Präfix ist der Wert "php". Der "php"
- Präfix für Werte ist reserviert um Namen und Werte, von während der Laufzeit
- setzbaren <acronym>PHP</acronym> Werte, zu setzen, wie
- <property>include_path</property> oder <property>error_reporting</property>. Um
- <property>include_path</property> oder <property>error_reporting</property> mit
- einem <acronym>INI</acronym> Wert zu überschreiben, würde ein Entwickler folgendes
- setzen:
- </para>
- <programlisting language="php"><![CDATA[
- php.include_path = "/path/to/includes1:/path/to/includes2"
- php.error_reporting = 1
- ]]></programlisting>
- <important>
- <para>
- Der reservierte Prefix "php" funktioniert nur mit <acronym>INI</acronym>
- Dateien. Man kann <acronym>PHP</acronym> <acronym>INI</acronym> Werte nicht in
- <acronym>PHP</acronym> oder <acronym>XML</acronym> Konfigurationen setzen.
- </para>
- </important>
- </sect3>
- </sect2>
- </sect1>
|