Jelajahi Sumber

[DOCUMENTATION] German:

- sync up to r16830

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@16950 44c647ce-9c0f-0410-b52a-842ac1e357ba
thomas 16 tahun lalu
induk
melakukan
8f35314445

+ 3 - 1
documentation/manual/de/manual.xml.in

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16772 -->
+<!-- EN-Revision: 16790 -->
 <!-- Reviewed: no -->
 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
     "@DOCBOOK_DTD@"
@@ -584,6 +584,8 @@
 
     <xi:include href="ref/requirements.xml" />
     <xi:include href="ref/coding_standard.xml" />
+    <xi:include href="ref/documentation-standard.xml" />
+    <xi:include href="ref/project-structure.xml" />
     <appendix id="performance">
         <title>Zend Framework Performance Handbuch</title>
         <xi:include href="ref/performance-introduction.xml" />

+ 1 - 1
documentation/manual/de/module_specs/Zend_Date-Constants.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16561 -->
+<!-- EN-Revision: 16810 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.date.constants">
 

+ 37 - 37
documentation/manual/de/module_specs/Zend_Db_Table_Definition.xml

@@ -7,38 +7,38 @@
 
     <sect2 id="zend.db.table.definition.introduction">
 
-        <title>Introduction</title>
+        <title>Einführung</title>
 
         <para>
-            <classname>Zend_Db_Table_Definition</classname> is a class that can be used to
-            describe the relationships and configuration options that should be used when
-            <classname>Zend_Db_Table</classname> is used via concrete instantiation.
+            <classname>Zend_Db_Table_Definition</classname> ist eine Klasse die verwendet werden kann
+            um Relationen und Optionen der Konfiguration zu beschreiben die verwendet werden sollten
+            wenn <classname>Zend_Db_Table</classname> über eine konkrete Instanz verwendet wird.
         </para>
 
     </sect2>
 
     <sect2 id="zend.db.table.definition.usage">
 
-        <title>Basic Usage</title>
+        <title>Grundsätzliche Verwendung</title>
 
         <para>
-            For all of the same options that are available when configuring an extended
-            Zend_Db_Table_Abstract class, those options are also available when describing
-            a definition file.  This definition file should be passed to the class at
-            instantiation time so that it can know the full definition of all tables
-            in said definition.
+            Für alle gleichen Optionen die vorhanden sind wenn eine erweiterte
+            Zend_Db_Table_Abstract Klasse konfiguriert wird, sind diese Optionen auch vorhanden
+            wenn eine Definitionsdatei beschrieben wird. Diese Definitionsdatei sollte der Klasse
+            zum Zeitpunkt der Instanziierung übergeben werden damit diese die komplette Definition
+            aller Tabellen in der besagten Definition kennt.
         </para>
 
         <para>
-            Below is a definition that will describe the table names and relationships
-            between table objects.  Note: if 'name' is left out of the definition, it
-            will be take as the key of the defined table (an example of this is in the
-            'genre' section in the example below.)
+            Anbei ist eine Definition welche die Tabellennamen und Relationen zwischen den Tabellen
+            Objekten beschreibt. Beachte: Wenn 'name' von der Definition ausgelassen wird, wird er
+            als Schlüssel der definierten Tabelle genommen (ein Beispiel hierfür ist die 'genre'
+            Sektion im Beispiel anbei.)
         </para>
 
         <example id="zend.db.table.definition.example1">
 
-            <title>Describing the Definition of a Database Data Model</title>
+            <title>Die Definition eines Datenbank Data Modells beschreiben</title>
 
             <programlisting language="php"><![CDATA[
 $definition = new Zend_Db_Table_Definition(array(
@@ -77,23 +77,23 @@ $definition = new Zend_Db_Table_Definition(array(
         </example>
 
         <para>
-            As you can see, the same options you'd generally see inside of an
-            extended Zend_Db_Table_Abstract class are documented in this
-            array as well.  When passed into Zend_Db_Table constructor, this
-            definition is <emphasis>persisted</emphasis> to any tables it will need
-            to create in order to return the proper rows.
+            Wie man sieht sind die gleichen Optionen die man generell in einer erweiterten
+            Zend_Db_Table_Abstract Klasse sieht auch in diesem Array dokumentiert. Wenn es
+            in den Constructor von Zend_Db_Table übergeben wird, ist diese Definition
+            <emphasis>persistent</emphasis> in jeder Tabelle die erstellt werden muß um die
+            richtigen Zeilen zurückzugeben.
         </para>
 
         <para>
-            Below is an example of the primary table instantiation as well as
-            the findDependentRowset() and findManyToManyRowset() calls that will
-            correspond to the data model described above:
+            Anbei ist ein Beispiel der Instanziierung einer primären Tabelle sowie Aufrufe von
+            findDependentRowset() und findManyToManyRowset() die mit dem oben beschriebenen
+            Datenmodell korrespondieren:
         </para>
 
 
         <example id="zend.db.table.definition.example2">
 
-            <title>Interacting with the described definition</title>
+            <title>Mit der beschriebenen Definition interagieren</title>
 
             <programlisting language="php"><![CDATA[
 $authorTable = new Zend_Db_Table('author', $definition);
@@ -103,7 +103,7 @@ foreach ($authors as $author) {
     echo $author->id . ': ' . $author->first_name . ' ' . $author->last_name . PHP_EOL;
     $books = $author->findDependentRowset('book');
     foreach ($books as $book) {
-        echo '    Book: ' . $book->title . PHP_EOL;
+        echo '    Buch: ' . $book->title . PHP_EOL;
         $genreOutputArray = array();
         foreach ($book->findManyToManyRowset('genre', 'book_to_genre') as $genreRow) {
             $genreOutputArray[] = $genreRow->name;
@@ -120,26 +120,26 @@ foreach ($authors as $author) {
 
     <sect2 id="zend.db.table.definition.advanced-usage">
 
-        <title>Advanced Usage</title>
+        <title>Fortgeschrittene Verwendung</title>
 
         <para>
-            Sometimes you want to use both paradigms for defining and using the
-            table gateway: both by extension and concrete instantiation.  To do this
-            simply leave out any table configurations out of the definition.  This will
-            allow Zend_Db_Table to look for the actual refered class instead of the
-            definition key.
+            Manchmal will man beide Paradigmen für die Definition und Verwendung des
+            Tabellen Gateways verwenden: Beide durch Wrweiterung und konkrete Instanziierung.
+            Um das zu tun muß man einfach alle Tabellen Konfigurationen aus der Definition
+            lassen. Das erlaubt es Zend_Db_Table in der aktuell referierten Klasse statt im
+            Definitionsschlüssel nachzusehen.
         </para>
 
         <para>
-            Building on the example above, we will allow for one of the table configurations
-            to be a Zend_Db_Table_Abstract extended class, while keeping the rest of the tables
-            as part of the definition.  We will also show how one would interact with this
-            new definition.
+            Aufbauend auf dem Beispiel anbei, erlauben wir es einer der Tabellenkonfigurationen
+            eine erweiterte Zend_Db_Table_Abstract Klasse zu sein, wärend der Rest der Tabellen
+            Teil der Definition ist. Wir zeigen auch wie man mit dieser neuen Definition
+            interagieren kann.
         </para>
 
         <example id="zend.db.table.definition.example3">
 
-            <title>Interacting A Mixed Use Zend_Db_Table Definition</title>
+            <title>Mit einer gemischten Zend_Db_Table Definition interagieren</title>
 
             <programlisting language="php"><![CDATA[
 class MyBook extends Zend_Db_Table_Abstract
@@ -183,7 +183,7 @@ foreach ($authors as $author) {
     echo $author->id . ': ' . $author->first_name . ' ' . $author->last_name . PHP_EOL;
     $books = $author->findDependentRowset(new MyBook());
     foreach ($books as $book) {
-        echo '    Book: ' . $book->title . PHP_EOL;
+        echo '    Buch: ' . $book->title . PHP_EOL;
         $genreOutputArray = array();
         foreach ($book->findManyToManyRowset('genre', 'book_to_genre') as $genreRow) {
             $genreOutputArray[] = $genreRow->name;

+ 17 - 19
documentation/manual/de/module_specs/Zend_Ldap-API-Ldap-Ldif-Encoder.xml

@@ -5,24 +5,23 @@
     <title>Zend_Ldif_Encoder</title>
 
     <table id="zend.ldap.api.reference.zend-ldap-ldif-encoder.table">
-        <title>Zend_Ldif_Encoder API</title>
+        <title>API für Zend_Ldif_Encoder</title>
 
         <tgroup cols="2">
             <thead>
                 <row>
-                    <entry>Method</entry>
-                    <entry>Description</entry>
+                    <entry>Methode</entry>
+                    <entry>Beschreibung</entry>
                 </row>
             </thead>
             <tbody>
                 <row>
                     <entry>
-                        <emphasis><code>array decode(string $string)</code>
-                        </emphasis>
+                        <emphasis><code>array decode(string $string)</code></emphasis>
                     </entry>
                     <entry>
-                        Decodes the string <code>$string</code> into an array of
-                        <acronym>LDIF</acronym> items.
+                        Dekodiert den String <code>$string</code> in ein Array von
+                        <acronym>LDIF</acronym> Elementen.
                     </entry>
                 </row>
                 <row>
@@ -31,18 +30,18 @@
                         $value, array $options)</code> </emphasis>
                     </entry>
                     <entry>
-                        Encode <code>$value</code> into a <acronym>LDIF</acronym> representation.
-                        <code>$options</code> is an array that may contain the following
-                        keys:
+                        Kodiert <code>$value</code> in eine <acronym>LDIF</acronym> Repräsentation.
+                        <code>$options</code> ist ein Array welches die folgenden Schlüssel
+                        enthalten kann:
                         <variablelist>
                             <varlistentry>
                                 <term><code>'sort'</code></term>
                                 <listitem>
                                     <para>
-                                        Sort the given attributes with <code>dn</code>
-                                        following <code>objectClass</code> and following all other
-                                        attributes sorted alphabetically. <code>true</code> by
-                                        default.
+                                        Sortiert die gegebenen Attribute nach <code>dn</code>
+                                        gefolgt von <code>objectClass</code> und dann gefolgt von
+                                        allen anderen Attributen alphabetisch sortiert.
+                                        Standardmäßig ist er <code>true</code>.
                                     </para>
                                 </listitem>
                             </varlistentry>
@@ -51,8 +50,8 @@
                                 <term><code>'version'</code></term>
                                 <listitem>
                                     <para>
-                                        The <acronym>LDIF</acronym> format version. <code>1</code> by
-                                        default.
+                                        Die Version des <acronym>LDIF</acronym> Formats.
+                                        Standardmäßig ist er <code>1</code>.
                                     </para>
                                 </listitem>
                             </varlistentry>
@@ -61,8 +60,8 @@
                                 <term><code>'wrap'</code></term>
                                 <listitem>
                                 <para>
-                                    The line-length. <code>78</code> by default to
-                                    conform to the <acronym>LDIF</acronym> specification.
+                                    Die Zeilenlänge. Standardmäßig ist er <code>78</code> um der
+                                    <acronym>LDIF</acronym> Spezifikation zu entsprechen.
                                 </para>
                                 </listitem>
                             </varlistentry>
@@ -73,4 +72,3 @@
         </tgroup>
     </table>
 </sect3>
-

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-API.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- EN-Revision: 16641 -->
+<!-- EN-Revision: 16825 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.api" xmlns:xi="http://www.w3.org/2001/XInclude">
     <title>API overview</title>

+ 1 - 1
documentation/manual/de/module_specs/Zend_Ldap-Introduction.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16638 -->
+<!-- EN-Revision: 16828 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.introduction">
     <title>Introduction</title>

+ 4 - 4
documentation/manual/de/module_specs/Zend_Ldap-LDIF.xml

@@ -2,9 +2,9 @@
 <!-- EN-Revision: 16633 -->
 <!-- Reviewed: no -->
 <sect1 id="zend.ldap.ldif">
-    <title>Serializing LDAP data to and from LDIF</title>
+    <title>Serialisieren von LDAP Daten von und zu LDIF</title>
     <sect2 id="zend.ldap.ldif.encode">
-        <title>Serialize a LDAP entry to LDIF</title>
+        <title>Einen LDAP Eintrag zu LDIF serialisieren</title>
 
         <programlisting language="php"><![CDATA[
 $data = array(
@@ -36,7 +36,7 @@ $data = array(
 $ldif = Zend_Ldap_Ldif_Encoder::encode($data, array('sort' => false,
                                                     'version' => null));
 /*
-$ldif contains:
+$ldif enthält:
 dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz
 objectclass: top
 objectclass: person
@@ -67,7 +67,7 @@ title;lang-en: Sales, Director
     </sect2>
 
     <sect2 id="zend.ldap.ldif.decode">
-        <title>Deserialize a LDIF string into a LDAP entry</title>
+        <title>Einen LDIF Strin in einen LDAP Eintrag deserialisieren</title>
 
         <programlisting language="php"><![CDATA[
 $ldif = "dn:: dWlkPXJvZ2FzYXdhcmEsb3U95Za25qWt6YOoLG89QWlyaXVz

+ 60 - 59
documentation/manual/de/module_specs/Zend_Queue-Framework.xml

@@ -5,15 +5,15 @@
     <title>Framework</title>
 
     <para>
-        The <classname>Zend_Queue</classname> is a proxy that hides the details
-        of the queue services. The queue services are represented by
-        <classname>Zend_Queue_Adapter_&lt;service&gt;</classname>. For example,
-        <classname>Zend_Queue_Adapter_Db</classname> is a queue that will use
-        database tables to store and retrieve messages.
+        <classname>Zend_Queue</classname> ist ein Proxy der die Details des Queue Services
+        versteckt. Die Queue Services werden durch
+        <classname>Zend_Queue_Adapter_&lt;service&gt;</classname> repräsentiert. Zum Beispiel ist
+        <classname>Zend_Queue_Adapter_Db</classname> eine Queue die Datenbanktabellen verwendet
+        um Nachrichten zu speichern und zu empfangen.
     </para>
 
     <para>
-        Below is an example for using database tables for a queuing system:
+        Anbei ist ein Beispiel für die Verwendung von Datenbanktabellen für ein Queueing System:
     </para>
 
     <programlisting language="php"><![CDATA[
@@ -29,148 +29,149 @@ $options = array(
     )
 );
 
-// Create a database queue.
-// Zend_Queue will prepend Zend_Queue_Adapter_ to 'Db' for the class name.
+// Erstellt eine Datenbank Queue.
+// Zend_Queue fügt vorne Zend_Queue_Adapter_ an 'Db' für den Klassennamen an.
 $queue = Zend_Queue('Db', $options);
 ]]></programlisting>
 
     <para>
-        The <classname>Zend_Queue</classname> constructor will create a
-        <classname>Zend_Queue_Adapter_Db</classname> and initialize the adapter
-        with the configuration settings.
+        Der Constructor von <classname>Zend_Queue</classname> erstellt eine
+        <classname>Zend_Queue_Adapter_Db</classname> und initialisiert den Adapter mit den
+        Konfigurationseinstellungen.
     </para>
 
     <para>
-        The accepted configuration settings for each adapter are provided
-        in the <ulink url="zend.queue.adapters">adapter notes</ulink>.
+        Die akzeptierten Konfigurationseinstellungen für jeden Adapter sind in den
+        <ulink url="zend.queue.adapters">Adapter Notizen</ulink> beschrieben.
     </para>
 
     <para>
-        <classname>Zend_Queue</classname> returns messages using the class
-        <classname>Zend_Queue_Message_Iterator</classname>, which is an
-        implementation of <acronym>SPL</acronym> <classname>Iterator</classname> and
-        <classname>Countable</classname>.
-        <classname>Zend_Queue_Message_Iterator</classname> contains an array of
-        <classname>Zend_Queue_Message</classname> objects.
+        <classname>Zend_Queue</classname> gibt Nachrichten zurück indem es die
+        <classname>Zend_Queue_Message_Iterator</classname> Klasse verwendet, welche eine
+        Implementation vom <acronym>SPL</acronym> <classname>Iterator</classname> und von
+        <classname>Countable</classname> ist.
+        <classname>Zend_Queue_Message_Iterator</classname> enthält ein Array von
+        <classname>Zend_Queue_Message</classname> Objekten.
     </para>
 
     <programlisting language="php"><![CDATA[
 $messages = $queue->receive(5);
 foreach ($messages as $i => $message) {
-    echo "$i) Message => ", $message->body, "\n";
+    echo "$i) Nachricht => ", $message->body, "\n";
 }
 ]]></programlisting>
 
     <para>
-        Any exceptions thrown are of class
+        Alle Exceptions die geworfen werden sind von der Klasse
         <classname>Zend_Queue_Exception</classname>.
     </para>
 
     <sect2 id="zend.queue.framework.basics">
-        <title>Introduction</title>
+        <title>Einführung</title>
 
         <para>
-            <classname>Zend_Queue</classname> is a proxy class that represents
-            an adapter.
+            <classname>Zend_Queue</classname> ist eine Proxy Klasse die einen Adapter
+            repräsentiert.
         </para>
 
         <para>
-            The <methodname>send()</methodname>,
-            <methodname>count($queue)</methodname>, and
-            <methodname>receive()</methodname> methods are employed by each
-            adapter to interact with queues.
+            Die Methoden <methodname>send()</methodname>, <methodname>count($queue)</methodname>,
+            und <methodname>receive()</methodname> werden von jedem Adapter verwendet um mit den
+            Queues zu interagieren.
         </para>
 
         <para>
-            The <methodname>createQueue()</methodname>,
-            <methodname>deleteQueue()</methodname> methods are used to manage
-            queues.
+            Die Methoden <methodname>createQueue()</methodname>,
+            <methodname>deleteQueue()</methodname> werden verwendet um Queues zu managen.
         </para>
     </sect2>
 
     <sect2 id="zend.queue.framework.support">
-        <title>Commonality among adapters</title>
+        <title>Gemeinsamkeiten für alle Adapter</title>
 
         <para>
-            The queue services supported by <classname>Zend_Queue</classname> do
-            not all support the same functions. For example,
-            <classname>Zend_Queue_Adapter_Array</classname>,
-            <classname>Zend_Queue_Adapter_Db</classname>, support all functions,
-            while <classname>Zend_Queue_Adapter_Activemq</classname> does not
-            support queue listing, queue deletion, or counting of messages.
+            Die Queue Services die von <classname>Zend_Queue</classname> unterstützt werden
+            unterstützen nicht alle die gleichen Funktionalitäten. Zum Beispiel unterstützen
+            <classname>Zend_Queue_Adapter_Array</classname> und
+            <classname>Zend_Queue_Adapter_Db</classname> alle Funktionen, wärend
+            <classname>Zend_Queue_Adapter_Activemq</classname> das Auflisten und Löschen von Queues
+            der das Zählen von Nachrichten nicht unterstützt.
         </para>
 
         <para>
-            You can determine what functions are supported by using
-            <methodname>Zend_Queue::isSupported()</methodname> or
-            <methodname>Zend_Queue::getCapabilities()</methodname>.
+            Man kann erkennen welche Funktionen unterstützt werden indem
+            <methodname>Zend_Queue::isSupported()</methodname> oder
+            <methodname>Zend_Queue::getCapabilities()</methodname> verwendet wird.
         </para>
 
         <itemizedlist>
             <listitem>
                 <para>
-                    <methodname>create()</methodname> - create a queue
+                    <emphasis><methodname>create()</methodname></emphasis> - Erstellt eine Queue
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>delete()</methodname> - delete a queue
+                    <emphasis><methodname>delete()</methodname></emphasis> - Löscht eine Queue
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>send()</methodname> - send a message
+                    <emphasis><methodname>send()</methodname></emphasis> - Sendet eine Nachricht
                 </para>
 
                 <para>
-                    <methodname>send()</methodname> is not available in all adapters; the
-                    <classname>Zend_Queue_Adapter_Null</classname> does not
-                    support <methodname>send()</methodname>.
+                    <methodname>send()</methodname> ist nicht in allen Adaptern vorhanden;
+                    <classname>Zend_Queue_Adapter_Null</classname> unterstützt
+                    <methodname>send()</methodname> nicht.
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>receive()</methodname> - receive messages
+                    <emphasis><methodname>receive()</methodname></emphasis> - Empfängt eine
+                    Nachricht
                 </para>
 
                 <para>
-                    <methodname>receive()</methodname> is not available in all adapters;
-                    the <classname>Zend_Queue_Adapter_Null</classname> does not
-                    support <methodname>receive()</methodname>.
+                    <methodname>receive()</methodname> ist nicht in allen Adaptern vorhanden;
+                    <classname>Zend_Queue_Adapter_Null</classname> unterstützt
+                    <methodname>receive()</methodname> nicht.
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>deleteMessage()</methodname> - delete a message
+                    <emphasis><methodname>deleteMessage()</methodname></emphasis> - Löscht eine
+                    Nachricht
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>count()</methodname> - count the number of messages in a queue
+                    <emphasis><methodname>count()</methodname></emphasis> - Zählt die Anzahl an
+                    Nachrichten in einer Queue
                 </para>
             </listitem>
 
             <listitem>
                 <para>
-                    <methodname>isExists()</methodname> - checks the existence of a queue
+                    <emphasis><methodname>isExists()</methodname></emphasis> - Prüft auf die
+                    Existenz einer Queue
                 </para>
             </listitem>
         </itemizedlist>
 
         <para>
-            <methodname>receive()</methodname> methods are employed by each
-            adapter to interact with queues.
+            <methodname>receive()</methodname> Methoden werden von jedem Adapter zur Verfügung
+            gestellt um mit Queues zu interagieren.
         </para>
 
         <para>
-            The <methodname>createQueue()</methodname> and
-            <methodname>deleteQueue()</methodname> methods are used to manage
-            queues.
+            Die Methoden <methodname>createQueue()</methodname> und
+            <methodname>deleteQueue()</methodname> werden verwendet um Queues zu managen.
         </para>
     </sect2>
 </sect1>

+ 12 - 8
documentation/manual/de/ref/coding_standard.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- EN-Revision: 16734 -->
+<!-- EN-Revision: 16783 -->
 <!-- Reviewed: no -->
 <appendix id="coding-standard">
   <title>Zend Framework Coding Standard für PHP</title>
@@ -16,15 +16,19 @@
                 Ihr Code Stil mit jedem Zend Framework Code konsistent bleibt. Es ist auch
                 anzumerken das es signifikant viel Arbeit erfordert einen kompletten Coding
                 Standard zu definieren.
-
-                Beachte: Manchmal entscheiden Entwickler das die Verfügbarkeit eines Standards
-                wichtiger ist als was der Standard aktuell im höchsten Level des Designs empfiehlt.
-                Diese Richtlinien im Zend Framework Coding Standard beschreiben die Praxis die im
-                ZF Projekt sehr gut funktionieren. Diese Standard können geändert oder so wie sie
-                sind verwendet werden solange Sie sich an unsere
-                <ulink url="http://framework.zend.com/license">Lizenz</ulink> halten.
             </para>
 
+            <note>
+                <para>
+                    Manchmal entscheiden Entwickler das die Verfügbarkeit eines Standards wichtiger
+                    ist als was der Standard aktuell im höchsten Level des Designs empfiehlt. Diese
+                    Richtlinien im Zend Framework Coding Standard beschreiben die Praxis die im
+                    ZF Projekt sehr gut funktionieren. Diese Standard können geändert oder so wie
+                    sie sind verwendet werden solange Sie sich an unsere
+                    <ulink url="http://framework.zend.com/license">Lizenz</ulink> halten.
+                </para>
+            </note>
+
             <para>
                 Die Bereiche die im ZF Coding Standard abgedeckt werden enthalten:
             </para>

+ 663 - 0
documentation/manual/de/ref/documentation-standard.xml

@@ -0,0 +1,663 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16785 -->
+<!-- Reviewed: no -->
+<appendix id="doc-standard">
+    <title>Zend Framework Documentation Standard</title>
+
+    <sect1 id="doc-standard.overview">
+        <title>Overview</title>
+
+        <sect2 id="doc-standard.overview.scope">
+            <title>Scope</title>
+
+            <para>
+                This document provides guidelines for creation of the end-user
+                documentation found within Zend Framework. It is intended as a
+                guide to Zend Framework contributors, who must write
+                documentation as part of component contributions, as well as to
+                documentation translators. The standards contained herein are
+                intended to ease translation of documentation, minimize
+                visual and stylistic differences between different documentation
+                files, and make finding changes in documentation easier with
+                <command>diff</command> tools.
+            </para>
+
+            <para>
+                You may adopt and/or modify these standards in accordance with the terms of our
+                <ulink url="http://framework.zend.com/license">license</ulink>.
+            </para>
+
+            <para>
+                Topics covered in the ZF documentation standards include documentation file
+                formatting and recommendations for documentation quality.
+            </para>
+        </sect2>
+    </sect1>
+
+    <sect1 id="doc-standard.file-formatting">
+        <title>Documentation File Formatting</title>
+
+        <sect2 id="doc-standard.file-formatting.xml-tags">
+            <title>XML Tags</title>
+
+            <para>
+                Each manual file must include the following <acronym>XML</acronym> declarations at
+                the top of the file:
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Reviewed: no -->
+]]></programlisting>
+
+            <para>
+                <acronym>XML</acronym> files from translated languages must also include a revision
+                tag containing the revision of the corresponding English-language file the
+                translation was based on.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 14978 -->
+<!-- Reviewed: no -->
+]]></programlisting>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.max-line-length">
+            <title>Maximum Line Length</title>
+
+            <para>
+                The maximum line length, including tags, attributes, and indentation, is not to
+                exceed 100 characters. There is only one exception to this rule: attribute/value
+                pairs are allowed to exceed the 100 chars as they are not allowed to be seperated.
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.indentation">
+            <title>Indentation</title>
+
+            <para>Indentation should consist of 4 spaces. Tabs are not allowed.</para>
+
+            <para>Tags which are at the same level must have the same indentation.</para>
+
+            <programlisting language="xml"><![CDATA[
+<sect1>
+</sect1>
+
+<sect1>
+</sect1>
+]]></programlisting>
+
+            <para>
+                Tags which are one level under the previous tag must be indented with 4 additional
+                spaces.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<sect1>
+    <sect2>
+    </sect2>
+</sect1>
+]]></programlisting>
+
+            <para>
+                Multiple block tags within the same line are not allowed; multiple inline tags are
+                allowed, however.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED: -->
+<sect1><sect2>
+</sect2></sect1>
+
+<!-- ALLOWED -->
+<para>
+    <code>Zend_Magic</code> does not exist. <code>Zend_Acl</code> does.
+</para>
+]]></programlisting>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.line-termination">
+            <title>Line Termination</title>
+
+            <para>
+                Line termination follows the Unix text file convention. Lines must end with a
+                single linefeed (LF) character. Linefeed characters are represented as ordinal 10,
+                or hexadecimal 0x0A.
+            </para>
+
+            <para>
+                Note: Do not use carriage returns (<acronym>CR</acronym>) as is the convention in
+                Apple OS's (0x0D) or the carriage return - linefeed combination
+                (<acronym>CRLF</acronym>) as is standard for the Windows OS (0x0D, 0x0A).
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.empty-tags">
+            <title>Empty tags</title>
+
+            <para>
+                Empty tags are not allowed; all tags must contain text or child tags.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<para>
+    Some text. <link></link>
+</para>
+
+<para>
+</para>
+]]></programlisting>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.whitespace">
+            <title>Usage of whitespace within documents</title>
+
+            <sect3 id="doc-standard.file-formatting.whitespace.trailing">
+                <title>Whitespace within tags</title>
+
+                <para>
+                    Opening block tags should have no whitespace immediately following them other
+                    than line breaks (and indentation on the following line).
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<sect1>WHITESPACE
+</sect1>
+]]></programlisting>
+
+                <para>
+                    Opening inline tags should have no whitespace immediately following them.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+This is the class <classname> Zend_Class</classname>.
+
+<!-- OK -->
+This is the class <classname>Zend_Class</classname>.
+]]></programlisting>
+
+                <para>
+                    Closing block tags may be preceded by whitespace equivalent to the current
+                    indentation level, but no more than that amount.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+    <sect1>
+     </sect1>
+
+<!-- OK -->
+    <sect1>
+    </sect1>
+]]></programlisting>
+
+                <para>
+                    Closing inline tags must not be preceded by any whitespace.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+This is the class <classname>Zend_Class </classname>
+
+<!-- OK -->
+This is the class <classname>Zend_Class</classname>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.whitespace.multiple-line-breaks">
+                <title>Multiple line breaks</title>
+
+                <para>
+                    Multiple line breaks within or between tags are not allowed.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<para>
+    Some text...
+
+    ... and more text
+</para>
+
+
+<para>
+    Another paragraph.
+</para>
+
+<!-- OK -->
+<para>
+    Some text...
+    ... and more text
+</para>
+
+<para>
+    Another paragraph.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.whitespace.tag-separation">
+                <title>Separation between tags</title>
+
+                <para>
+                    Tags at the same level must be separated by an empty line to improve
+                    readability.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<para>
+    Some text...
+</para>
+<para>
+    More text...
+</para>
+
+<!-- OK -->
+<para>
+    Some text...
+</para>
+
+<para>
+    More text...
+</para>
+]]></programlisting>
+
+                <para>
+                    The first child tag should open directly below its parent, with no empty line
+                    between them; the last child tag should close directly before the closing tag of
+                    its parent.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<sect1>
+
+    <sect2>
+    </sect2>
+
+    <sect2>
+    </sect2>
+
+    <sect2>
+    </sect2>
+
+</sect1>
+
+<!-- OK -->
+<sect1>
+    <sect2>
+    </sect2>
+
+    <sect2>
+    </sect2>
+
+    <sect2>
+    </sect2>
+</sect1>
+]]></programlisting>
+            </sect3>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.program-listing">
+            <title>Program Listings</title>
+
+            <para>
+                The opening <emphasis>&lt;programlisting&gt;</emphasis> tag must indicate the
+                appropriate "language" attribute and be indented at the same level as its sibling
+                blocks.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<para>Sibling paragraph.</para>
+
+<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+]]></programlisting>
+
+            <para>
+                <acronym>CDATA</acronym> should be used around all program listings.
+            </para>
+
+            <para>
+                <emphasis>&lt;programlisting&gt;</emphasis> sections must not add linebreaks or
+                whitespace at the beginning or end of the section, as these are then represented in
+                the final output.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+
+$render = "xxx";
+
+]]]]>&gt;<![CDATA[</programlisting>
+
+<!-- OK -->
+<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+$render = "xxx";
+]]]]>&gt;<![CDATA[</programlisting>
+]]></programlisting>
+
+            <para>
+                Ending <acronym>CDATA</acronym> and <emphasis>&lt;programlisting&gt;</emphasis>
+                tags should be on the same line, without any indentation.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+$render = "xxx";
+]]]]>&gt;<![CDATA[
+    </programlisting>
+
+<!-- NOT ALLOWED -->
+    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+$render = "xxx";
+    ]]]]>&gt;<![CDATA[</programlisting>
+
+<!-- OK -->
+    <programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+$render = "xxx";
+]]]]>&gt;<![CDATA[</programlisting>
+]]></programlisting>
+
+            <para>
+                The <emphasis>&lt;programlisting&gt;</emphasis> tag should contain the "language"
+                attribute with a value appropriate to the contents of the program listing. Typical
+                values include "css", "html", "ini", "javascript", "php", "text", and "xml".
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- PHP -->
+<programlisting language="php">]]>&lt;<![CDATA[![CDATA[
+
+<!-- Javascript -->
+<programlisting language="javascript">]]>&lt;<![CDATA[![CDATA[
+
+<!-- XML -->
+<programlisting language="xml">]]>&lt;<![CDATA[![CDATA[
+]]></programlisting>
+
+            <para>
+                For program listings containing only <acronym>PHP</acronym> code,
+                <acronym>PHP</acronym> tags (e.g., "&lt;?php", "?&gt;") are not required, and
+                should not be used. They simply clutter the narrative, and are implied by the use
+                of the <emphasis>&lt;programlisting&gt;</emphasis> tag.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<programlisting language="php"]]>&lt;<![CDATA[![CDATA[<?php
+    // ...
+?>]]]]>&gt;<![CDATA[</programlisting>
+
+<programlisting language="php"]]>&lt;<![CDATA[![CDATA[
+<?php
+    // ...
+?>
+]]]]>&gt;<![CDATA[</programlisting>
+]]></programlisting>
+
+            <para>
+                Line lengths within program listings should follow the <link
+                    linkend="coding-standard.php-file-formatting.max-line-length">coding standards
+                recommendations</link>.
+            </para>
+
+            <para>
+                Refrain from using <methodname>require_once()</methodname>,
+                <methodname>require()</methodname>, <methodname>include_once()</methodname>, and
+                <methodname>include()</methodname> calls within <acronym>PHP</acronym> listings.
+                They simply clutter the narrative, and are largely obviated when using an
+                autoloader. Use them only when they are essential to the example.
+            </para>
+
+            <note>
+                <title>Never use short tags</title>
+
+                <para>
+                    Short tags (e.g., "&lt;?", "&lt;?=") should never be used within
+                    <emphasis>programlisting</emphasis> or the narrative of a document.
+                </para>
+            </note>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.inline-tags">
+            <title>Notes on specific inline tags</title>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.classname">
+                <title>classname</title>
+
+                <para>
+                    The tag <emphasis>&lt;classname&gt;</emphasis> must be used each time a class name is
+                    represented by itself; it should not be used when combined with a method name,
+                    variable name, or constant, and no other content is allowed within the tag.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    The class <classname>Zend_Class</classname>.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.varname">
+                <title>varname</title>
+
+                <para>
+                    Variables must be wrapped in the <emphasis>&lt;varname&gt;</emphasis> tag.
+                    Variables must be written using the "$" sigil. No other content is allowed
+                    within this tag, unless a class name is used, which indicates a class variable.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    The variable <varname>$var</varname> and the class variable
+    <varname>Zend_Class::$var</varname>.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.methodname">
+                <title>methodname</title>
+
+                <para>
+                    Methods must be wrapped in the <emphasis>&lt;methodname&gt;</emphasis> tag.
+                    Methods must either include the full method signature or at the least a pair of
+                    closing parentheses (e.g., "()"). No other content is allowed within this tag,
+                    unless a class name is used, which indicates a class method.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    The method <methodname>foo()</methodname> and the class method
+    <methodname>Zend_Class::foo()</methodname>. A method with a full signature:
+    <methodname>foo($bar, $baz)</methodname>
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.constant">
+                <title>constant</title>
+
+                <para>
+                    Use the <emphasis>&lt;constant&gt;</emphasis> tag when denoting constants.
+                    Constants must be written in <acronym>UPPERCASE</acronym>. No other content is
+                    allowed within this tag, unless a class name is used, which indicates a class
+                    constant.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    The constant <constant>FOO</constant> and the class constant
+    <constant>Zend_Class::FOO</constant>.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.filename">
+                <title>filename</title>
+
+                <para>
+                    Filenames and paths must be wrapped in the
+                    <emphasis>&lt;filename&gt;</emphasis> tag. No other content is allowed in this
+                    tag.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    The filename <filename>application/Bootstrap.php</filename>.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.command">
+                <title>command</title>
+
+                <para>
+                    Commands, shell scripts, and program calls must be wrapped in the
+                    <emphasis>&lt;command&gt;</emphasis> tag. If the command includes arguments,
+                    these should also be included within the tag.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<para>
+    Execute <command>zf.sh create project</command>.
+</para>
+]]></programlisting>
+            </sect3>
+
+            <sect3 id="doc-standard.file-formatting.inline-tags.code">
+                <title>code</title>
+
+                <para>
+                    Usage of the <emphasis>&lt;code&gt;</emphasis> tag is discouraged, in favor of
+                    the other inline tasks discussed previously.
+                </para>
+            </sect3>
+        </sect2>
+
+        <sect2 id="doc-standard.file-formatting.block-tags">
+            <title>Notes on specific block tags</title>
+
+            <sect3 id="doc-standard.file-formatting.block-tags.title">
+                <title>title</title>
+
+                <para>
+                    The <emphasis>&lt;title&gt;</emphasis> tag is not allowed to hold other tags.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<!-- NOT ALLOWED -->
+<title>Using <classname>Zend_Class</classname></title>
+
+<!-- OK -->
+<title>Using Zend_Class</title>
+]]></programlisting>
+            </sect3>
+        </sect2>
+    </sect1>
+
+    <sect1 id="doc-standard.recommendations">
+        <title>Recommendations</title>
+
+        <sect2 id="doc-standard.recommendations.editors">
+            <title>Use editors without autoformatting</title>
+
+            <para>
+                For editing the documentation, typically you should not use formal
+                <acronym>XML</acronym> editors. Such editors normally autoformat existing documents
+                to fit their own standards and/or do not strictly follow the docbook standard. As
+                examples, we have seen them erase the <acronym>CDATA</acronym> tags, change 4 space
+                seperation to tabs or 2 spaces, etc.
+            </para>
+
+            <para>
+                The style guidelines were written in large part to assist translators in recognizing
+                the lines that have changed using normal <command>diff</command> tools.
+                Autoformatting makes this process more difficult.
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.recommendations.images">
+            <title>Use Images</title>
+
+            <para>
+                Good images and diagrams can improve readability and comprehension. Use them
+                whenever they will assist in these goals. Images should be placed in the
+                <filename>documentation/manual/en/figures/</filename> directory, and be named after
+                the section identifier in which they occur.
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.recommendations.examples">
+            <title>Use Case Examples</title>
+
+            <para>
+                Look for good use cases submitted by the community, especially those posted in
+                proposal comments or on one of the mailing lists. Examples often illustrate usage
+                far better than the narrative does.
+            </para>
+
+            <para>
+                When writing your examples for inclusion in the manual, follow
+                all coding standards and documentation standards.
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.recommendations.phpdoc">
+            <title>Avoid Replicating phpdoc Contents</title>
+
+            <para>
+                The manual is intended to be a reference guide for end-user usage. Replicating
+                the phpdoc documentation for internal-use components and classes is not wanted, and
+                the narrative should be focussed on usage, not the internal workings. In any case,
+                at this time, we would like the documentation teams to focus on translating the
+                English manual, not the phpdoc comments.
+            </para>
+        </sect2>
+
+        <sect2 id="doc-standard.recommendations.links">
+            <title>Use Links</title>
+
+            <para>
+                Link to other sections of the manual or to external sources
+                instead of recreating documentation.
+            </para>
+
+            <para>
+                Linking to other sections of the manual may be done using either the
+                <emphasis>&lt;xref&gt;</emphasis> tag (which will substitute the section title for
+                the link text) or the <emphasis>&lt;link&gt;</emphasis> tag (to which you must
+                provide link text).
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<para>
+    "Xref" links to a section: <xref
+        linkend="doc-standard.recommendations.links" />.
+</para>
+
+<para>
+    "Link" links to a section, using descriptive text: <link
+        linkend="doc-standard.recommendations.links">documentation on
+        links</link>.
+</para>
+]]></programlisting>
+
+            <para>
+                To link to an external resource, use <emphasis>&lt;ulink&gt;</emphasis>:
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<para>
+    The <ulink url="http://framework.zend.com/">Zend Framework site</ulink>.
+</para>
+]]></programlisting>
+        </sect2>
+    </sect1>
+</appendix>

+ 393 - 0
documentation/manual/de/ref/project-structure.xml

@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- EN-Revision: 16795 -->
+<!-- Reviewed: no -->
+<appendix id="project-structure">
+    <title>Recommended Project Structure for Zend Framework MVC Applications</title>
+
+    <sect1 id="project-structure.overview">
+        <title>Overview</title>
+
+        <para>
+            Many developers seek guidance on the best project structure for a Zend Framework project
+            in a relatively flexible environment. A "flexible" environment is one in which the
+            developer can manipulate their file systems and web server configurations as needed to
+            achieve the most ideal project structure to run and secure their application. The
+            default project structure will assume that the developer has such flexibility at their
+            disposal.
+        </para>
+
+        <para>
+            The following directory structure is designed to be maximally extensible for complex
+            projects, while providing a simple subset of folder and files for project with simpler
+            requirements. This structure also works without alteration for both modular and
+            non-modular ZF applications. The <filename>.htaccess</filename> files require URL
+            rewrite functionality in the web server as described in the <link
+                linkend="project-structure.rewrite">Rewrite Configuration Guide</link>, also
+            included in this appendix.
+        </para>
+
+        <para>
+            It is not the intention that this project structure will support all possible ZF project
+            requirements. The default project profile used by <classname>Zend_Tool</classname>
+            reflect this project structure, but applications with requirements not supported by this
+            structure should use a custom project profile.
+        </para>
+    </sect1>
+
+    <sect1 id="project-structure.project">
+        <title>Recommended Project Directory Structure</title>
+
+        <literallayout>
+&lt;project name&gt;/
+    application/
+        configs/
+            application.ini
+        controllers/
+            helpers/
+        layouts/
+            filters/
+            helpers/
+            scripts/
+        models/
+        modules/
+        services/
+        views/
+            filters/
+            helpers/
+            scripts/
+        Bootstrap.php
+    data/
+        cache/
+        indexes/
+        locales/
+        logs/
+        sessions/
+        uploads/
+    docs/
+    library/
+    public/
+        css/
+        images/
+        js/
+        .htaccess
+        index.php
+    scripts/
+        jobs/
+        build/
+    temp/
+    tests/
+        </literallayout>
+
+        <para>
+            The following describes the use cases for each directory as listed.
+        </para>
+
+        <itemizedlist>
+            <listitem>
+                <para>
+                    <emphasis>application/</emphasis>: This directory contains your application. It
+                    will house the MVC system, as well as configurations, services used, and your
+                    bootstrap file.
+                </para>
+
+                <itemizedlist>
+                    <listitem>
+                        <para>
+                            <emphasis>configs/</emphasis>: The application-wide configuration
+                            directory.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>controllers/</emphasis>, <emphasis>models/</emphasis>, and
+                            <emphasis>views/</emphasis>: These directories serve as the default
+                            controller/model/view directories. Having these three directories inside
+                            the application directory provides the best layout for starting a simple
+                            project as well as starting a modular project that has global
+                            controllers/models/views.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>controllers/helpers/</emphasis>: These directories will
+                            contain action helpers. Action helpers will be namespaced either as
+                            "Controller_Helper_" for the default module or
+                            "&lt;Module&gt;_Controller_Helper" in other modules.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>layouts/</emphasis>: This layout directory is for MCV-based
+                            layouts. Since <classname>Zend_Layout</classname> is capable of MVC-
+                            and non-MVC-based layouts, the location of this directory reflects that
+                            layouts are not on a 1-to-1 relationship with controllers and are
+                            independent of templates within <filename>views/</filename>.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>modules/</emphasis>: Modules allow a developer to group a set
+                            of related controllers into a logically organized group. The structure
+                            under the modules directory would resemble the structure under the
+                            application directory.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>services</emphasis>: This directory is for your application
+                            specific web-service files that are provided by your application, or for
+                            implementing a <ulink
+                            url="http://www.martinfowler.com/eaaCatalog/serviceLayer.html">Service
+                            Layer</ulink> for your models.
+                        </para>
+                    </listitem>
+
+                    <listitem>
+                        <para>
+                            <emphasis>Bootstrap.php</emphasis>: This file is the entry point for
+                            your application, and should implement
+                            <interfacename>Zend_Application_Bootstrap_Bootstrapper</interfacename>.
+                            The purpose for this file is to bootstrap the application and make
+                            components available to the application by initializing them.
+                        </para>
+                    </listitem>
+                </itemizedlist>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>data</emphasis>: This directory provides a place to store application
+                    data that is volatile and possibly temporary. The disturbance of data in this
+                    directory might cause the application to fail. Also, the information in this
+                    directory may or may not be committed to a subversion repository. Examples of
+                    things in this directory are session files, cache files, sqlite databases, logs
+                    and indexes.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>docs/</emphasis>: This directory contains documentation, either
+                    generated or directly authored.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>library/</emphasis>: This directory is for common libraries on which
+                    the application depends, and should be on the PHP
+                    <varname>include_path</varname>.  Developers should place their application's
+                    library code under this directory in a unique namespace, following the
+                    guidelines established in the PHP manual's <ulink
+                        url="http://www.php.net/manual/en/userlandnaming.php">Userland Naming
+                    Guide</ulink>, as well as those established by Zend itself.  This may directory
+                    may also include Zend Framework itself; if so, you would house it in
+                    <filename>library/Zend/</filename>.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>public/</emphasis>: This directory contains all public files for your
+                    application.  <filename>index.php</filename> sets up and invokes
+                    <classname>Zend_Application</classname>, which in turn invokes the
+                    <filename>application/Bootstrap.php</filename> file, resulting in dispatching
+                    the front controller. The web root of your web server would typically be set to
+                    this directory.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>scripts/</emphasis>: This directory contains maintenance and/or build
+                    scripts. Such scripts might include command line, cron, or phing build scripts
+                    that are not executed at runtime but are part of the correct functioning of the
+                    application.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>temp/</emphasis>: The <filename>temp/</filename> folder is set aside
+                    for transient application data. This information would not typically be
+                    committed to the applications svn repository. If data under the
+                    <filename>temp/</filename> directory were deleted, the application should be
+                    able to continue running with a possible decrease in performance until data is
+                    once again restored/recached.
+                </para>
+            </listitem>
+
+            <listitem>
+                <para>
+                    <emphasis>tests/</emphasis>: This directory contains application tests. These
+                    could be hand-written, PHPUnit tests, Selenium-RC based tests or based on some
+                    other testing framework. By default, library code can be tested by mimicing the
+                    directory structure of your <filename>library/</filename> directory.
+                    Additionally, functional tests for your application could be written mimicing
+                    the <filename>application/</filename> directory structure (including the
+                    application subdirectory).
+                </para>
+            </listitem>
+        </itemizedlist>
+    </sect1>
+
+    <sect1 id="project-structure.filesystem">
+        <title>Module Structure</title>
+
+        <para>
+            The directory structure for modules should mimic that of the
+            <filename>application/</filename> directory in the recommended project structure:
+        </para>
+
+        <literallayout>
+&lt;modulename&gt;/
+    configs/
+        application.ini
+    controllers/
+        helpers/
+    layouts/
+        filters/
+        helpers/
+        scripts/
+    models/
+    services/
+    views/
+        filters/
+        helpers/
+        scripts/
+    Bootstrap.php
+        </literallayout>
+
+        <para>
+            The purpose of these directories remains exactly the same as for the recommended
+            project directory structure.
+        </para>
+    </sect1>
+
+    <sect1 id="project-structure.rewrite">
+        <title>Rewrite Configuration Guide</title>
+
+        <para>
+            URL rewriting is a common function of HTTP servers. However, the rules and configuration
+            differ widely between them. Below are some common approaches across a variety of popular
+            web servers available at the time of writing.
+        </para>
+
+        <sect2 id="project-structure.rewrite.apache">
+            <title>Apache HTTP Server</title>
+
+            <para>
+                All examples that follow use <application>mod_rewrite</application>, an official
+                module that comes bundled with Apache. To use it,
+                <application>mod_rewrite</application> must either be included at compile time or
+                enabled as a Dynamic Shared Object (DSO). Please consult the <ulink
+                    url="http://httpd.apache.org/docs/">Apache documentation</ulink> for your
+                version for more information.
+            </para>
+
+            <sect3 id="project-structure.rewrite.apache.vhost">
+                <title>Rewriting inside a VirtualHost</title>
+
+                <para>
+                    Here is a very basic virtual host definition. These rules direct all requests
+                    to <filename>index.php</filename>, except when a matching file is found under
+                    the <option>document_root</option>.
+                </para>
+
+                <programlisting language="xml"><![CDATA[
+<VirtualHost my.domain.com:80>
+    ServerName   my.domain.com
+    DocumentRoot /path/to/server/root/my.domain.com/public
+
+    RewriteEngine off
+
+    <Location />
+        RewriteEngine On
+        RewriteCond %{REQUEST_FILENAME} -s [OR]
+        RewriteCond %{REQUEST_FILENAME} -l [OR]
+        RewriteCond %{REQUEST_FILENAME} -d
+        RewriteRule ^.*$ - [NC,L]
+        RewriteRule ^.*$ /index.php [NC,L]
+    </Location>
+</VirtualHost>
+]]></programlisting>
+
+                <para>
+                    Note the slash ("/") prefixing <filename>index.php</filename>; the rules for
+                    <filename>.htaccess</filename> differ in this regard.
+                </para>
+            </sect3>
+
+            <sect3 id="project-structure.rewrite.apache.htaccess">
+                <title>Rewriting within a .htaccess file</title>
+
+                <para>
+                    Below is a sample <filename>.htaccess</filename> file that utilizes
+                    <application>mod_rewrite</application>. It is similar to the virtual host
+                    configuration, except that it specifies only the rewrite rules, and the leading
+                    slash is omitted from <filename>index.php</filename>.
+                </para>
+
+                <programlisting language="text"><![CDATA[
+RewriteEngine On
+RewriteCond %{REQUEST_FILENAME} -s [OR]
+RewriteCond %{REQUEST_FILENAME} -l [OR]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule ^.*$ - [NC,L]
+RewriteRule ^.*$ index.php [NC,L]
+]]></programlisting>
+
+                <para>
+                    There are many ways to configure <application>mod_rewrite</application>; if you
+                    would like more information, see Jayson Minard's <ulink
+                        url="http://devzone.zend.com/a/70">Blueprint for PHP Applications:
+                    Bootstrapping</ulink>.
+                </para>
+            </sect3>
+
+        </sect2>
+
+        <sect2 id="project-structure.rewrite.iis">
+            <title>Microsoft Internet Information Server</title>
+
+            <para>
+                As of version 7.0, IIS now ships with a standard rewrite engine.  You may use the
+                following configuration to create the appropriate rewrite rules.
+            </para>
+
+            <programlisting language="xml"><![CDATA[
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+    <system.webServer>
+        <rewrite>
+            <rules>
+                <rule name="Imported Rule 1" stopProcessing="true">
+                    <match url="^.*$" />
+                    <conditions logicalGrouping="MatchAny">
+                        <add input="{REQUEST_FILENAME}"
+                             matchType="IsFile" pattern=""
+                             ignoreCase="false" />
+                        <add input="{REQUEST_FILENAME}"
+                             matchType="IsDirectory"
+                             pattern=""
+                             ignoreCase="false" />
+                    </conditions>
+                    <action type="None" />
+                </rule>
+                <rule name="Imported Rule 2" stopProcessing="true">
+                    <match url="^.*$" />
+                    <action type="Rewrite" url="index.php" />
+                </rule>
+            </rules>
+        </rewrite>
+    </system.webServer>
+</configuration>
+]]></programlisting>
+        </sect2>
+    </sect1>
+</appendix>