|
|
@@ -1,43 +1,43 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<!-- EN-Revision: 19711 -->
|
|
|
-<!-- Reviewed: no -->
|
|
|
+<!-- Reviewed: 19711 -->
|
|
|
<appendix id="project-structure">
|
|
|
- <title>Vorgeschlagene Struktur für die Projekt Struktur von Zend Framework MVC Anwendungen</title>
|
|
|
+ <title>Empfohlene Projektstruktur für Zend Framework MVC Anwendungen</title>
|
|
|
|
|
|
<sect1 id="project-structure.overview">
|
|
|
<title>Übersicht</title>
|
|
|
|
|
|
<para>
|
|
|
- Viele Entwickler suchen Hilfe für die beste Projekt Struktur für ein Zend Framework
|
|
|
+ Viele Entwickler suchen Hilfe für die beste Projektstruktur für ein Zend Framework
|
|
|
Projekt in einer relativ flexiblen Umgebung. Eine "flexible" Umgebung ist eine, in
|
|
|
welcher der Entwickler seine Dateisysteme und Konfigurationen des Webservers wie
|
|
|
- benötigt manipulieren kann um die idealste Projektstruktur zu erhalten damit Ihre
|
|
|
- Anweungen ausgeführt werden können und sicher sind. Die standardmäßige Projektstruktur
|
|
|
- stellt sicher das der Entwickler diese Flexibilität zu seiner Verfügung hat.
|
|
|
+ benötigt manipulieren kann, um die ideale Projektstruktur zu erhalten, damit die
|
|
|
+ Anwendungen ausgeführt werden können und sicher sind. Die standardmäßige Projektstruktur
|
|
|
+ stellt sicher, dass der Entwickler diese Flexibilität zu seiner Verfügung hat.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Die folgende Verzeichnisstruktur wurde designt um für komplexe Projekt maximal
|
|
|
- erweiterbar zu sein, wärend Sie ein einfaches Subset von Verzeichnissen und Dateien
|
|
|
- für Projekte mit einfacheren Notwendigkeiten anbietet. Diese Struktur arbeitet auch
|
|
|
+ Die folgende Verzeichnisstruktur ist für komplexe Projekte maximal
|
|
|
+ erweiterbar, wärend sie eine einfache Teilmenge von Verzeichnissen und Dateien
|
|
|
+ für Projekte mit einfacheren Anforderungen anbietet. Diese Struktur funktioniert auch
|
|
|
ohne Änderung sowohl für modulare und nicht-modulare Zend Framework Anwendungen. Die
|
|
|
- <filename>.htaccess</filename> Dateien benötigen <acronym>URL</acronym> Rewrite
|
|
|
+ <filename>.htaccess</filename>-Dateien benötigen <acronym>URL</acronym> Rewrite
|
|
|
Funktionalität im Web Server wie im
|
|
|
- <link linkend="project-structure.rewrite">Rewrite Konfigurations Guide</link>
|
|
|
+ <link linkend="project-structure.rewrite">Leitfaden für die Rewrite Konfiguration</link>
|
|
|
beschrieben, der auch in diesem Anhang enthalten ist.
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Es ist nicht angedacht das diese Projekt Struktur alle möglichen Notwendigkeiten für
|
|
|
- Zend Framework Projekte unterstützt. Das standardmäßige Projekt Profil welches von
|
|
|
- <classname>Zend_Tool</classname> verwendet wird, reflektiert diese Projekt Struktur.
|
|
|
- Aber Anwendungen mit Notwendigkeiten die nicht von dieser Struktur unterstützt werden,
|
|
|
- sollten ein eigenes Projekt Profil verwenden.
|
|
|
+ Es ist nicht angedacht, dass diese Projektstruktur alle möglichen Anforderungen für
|
|
|
+ Zend Framework Projekte unterstützt. Das standardmäßige Projektprofil, welches von
|
|
|
+ <classname>Zend_Tool</classname> verwendet wird, reflektiert diese Projektstruktur.
|
|
|
+ Aber Anwendungen mit Anforderungen, die nicht von dieser Struktur unterstützt werden,
|
|
|
+ sollten ein angepasstes Projektprofil verwenden.
|
|
|
</para>
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="project-structure.project">
|
|
|
- <title>Vorgeschlagene Verzeichnis Struktur für Projekte</title>
|
|
|
+ <title>Empfohlene Verzeichnisstruktur für Projekte</title>
|
|
|
|
|
|
<programlisting language="text"><![CDATA[
|
|
|
<project name>/
|
|
|
@@ -82,22 +82,22 @@
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Nachfolgend ist der Verwendungszweck für jedes Verzeichnis angeführt.
|
|
|
+ Nachfolgend ist der Verwendungszweck für jedes Verzeichnis aufgeführt.
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <emphasis><filename>application/</filename></emphasis>: Der Verzeichnis enthält
|
|
|
- die eigene Anwendung. Das wird das <acronym>MVC</acronym> System inkludieren,
|
|
|
+ <emphasis><filename>application/</filename></emphasis>: Das Verzeichnis enthält
|
|
|
+ die eigentliche Anwendung. Das wird das <acronym>MVC</acronym> System einschliessen,
|
|
|
sowie Konfigurationen, verwendete Services, und die eigene Bootstrap Datei.
|
|
|
</para>
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
<para>
|
|
|
- <emphasis><filename>configs/</filename></emphasis>: Das Anwendungsweite
|
|
|
- Konfigurations Verzeichnis.
|
|
|
+ <emphasis><filename>configs/</filename></emphasis>: Das anwendungsweite
|
|
|
+ Konfigurationsverzeichnis.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
@@ -128,7 +128,7 @@
|
|
|
<para>
|
|
|
<emphasis><filename>layouts/</filename></emphasis>: Dieses Layout
|
|
|
Verzeichnis ist für <acronym>MVC</acronym>-basierte Layouts. Da
|
|
|
- <classname>Zend_Layout</classname> ist der Lage ist
|
|
|
+ <classname>Zend_Layout</classname> in der Lage ist
|
|
|
<acronym>MVC</acronym>- und nicht-<acronym>MVC</acronym>-basierte
|
|
|
Layouts zu verstehen, zeigt der Ort dieses Verzeichnisses das Layouts
|
|
|
keine 1-zu-1 beziehung zu Controllern haben und unabhängig von
|
|
|
@@ -148,7 +148,7 @@
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis><filename>services/</filename></emphasis>: Dieses Verzeichnis
|
|
|
- ist für eigene Anwendungsspezifische Web-Service Dateien welche von der
|
|
|
+ ist für eigene anwendungsspezifische Web-Service Dateien, welche von der
|
|
|
eigenen Anwendung angeboten werden, oder für die Implementierung eines
|
|
|
<ulink
|
|
|
url="http://www.martinfowler.com/eaaCatalog/serviceLayer.html">Service
|
|
|
@@ -161,8 +161,8 @@
|
|
|
<emphasis><filename>Bootstrap.php</filename></emphasis>: Diese Datei ist
|
|
|
der Eistiegspunkt für die eigene Anwendung, und sollte
|
|
|
<classname>Zend_Application_Bootstrap_Bootstrapper</classname>
|
|
|
- implementieren. Das Ziel diese Datei ist es die Anwendung zu starten und
|
|
|
- Komponenten der Anwendung zur Verfügung zu stellen indem diese
|
|
|
+ implementieren. Das Ziel dieser Datei ist es, die Anwendung zu starten und
|
|
|
+ Komponenten der Anwendung zur Verfügung zu stellen, indem diese
|
|
|
initialisiert werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -172,34 +172,34 @@
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis><filename>data/</filename></emphasis>: Dieses Verzeichnis bietet einen
|
|
|
- Ort an dem Anwendungsdaten gespeichert werden die angreifbar und möglicherweise
|
|
|
- temporär sind. Die Veränderung von Daten in diesem Verzeichnis kann dazu führen
|
|
|
- das die Anwendung fehlschlägt. Die Informationen in diesem Verzeichnis können,
|
|
|
+ Ort an dem Anwendungsdaten gespeichert werden, die angreifbar und möglicherweise
|
|
|
+ temporär sind. Die Veränderung von Daten in diesem Verzeichnis kann dazu führen,
|
|
|
+ dass die Anwendung fehlschlägt. Die Informationen in diesem Verzeichnis können,
|
|
|
oder auch nicht, in ein Subversion Repository übertragen werden. Beispiele von
|
|
|
Dingen in diesem Verzeichnis sind Session Dateien, Cache Dateien, SQLite
|
|
|
- Datenbanken, Logs und Indezes.
|
|
|
+ Datenbanken, Logs und Indizes.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis><filename>docs/</filename></emphasis>: Dieses Verzeichnis enthält die
|
|
|
- Dokumentation, entweder erzeugt oder direkt bearbeitet
|
|
|
+ Dokumentation, entweder erzeugt oder direkt bearbeitet.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>
|
|
|
<emphasis><filename>library/</filename></emphasis>: Dieses Verzeichnis ist für
|
|
|
- übliche Bibliotheken von denen die Anwendung abhängt, und es sollte im
|
|
|
+ übliche Bibliotheken, von denen die Anwendung abhängt, und es sollte im
|
|
|
<property>include_path</property> von <acronym>PHP</acronym> sein. Entwickler
|
|
|
- sollten den Bibliotheks-Code Ihrer Anwendung in diesem Verzeichnis, unter einem
|
|
|
- eindeutigen Namespace platzieren, und den Richtlinien folgen die im Handbuch von
|
|
|
+ sollten den Bibliotheks-Code ihrer Anwendung in diesem Verzeichnis, unter einem
|
|
|
+ eindeutigen Namespace platzieren, und den Richtlinien folgen, die im Handbuch von
|
|
|
<acronym>PHP</acronym> unter <ulink
|
|
|
url="http://www.php.net/manual/de/userlandnaming.php">Userland Naming
|
|
|
- Guide</ulink> beschrieben sind, sowie denen die von Zend selbst beschrieben
|
|
|
- sind.; Dieses Verzeichnis kann auch den Zend Framework selbst enthalten; wenn
|
|
|
- dem so ist, würde er unter <filename>library/Zend/</filename> platziert werden.
|
|
|
+ Guide</ulink> beschrieben sind, sowie denen, die von Zend selbst beschrieben
|
|
|
+ sind. Dieses Verzeichnis kann auch das Zend Framework selbst enthalten; wenn
|
|
|
+ dem so ist, würde es unter <filename>library/Zend/</filename> platziert werden.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
|
|
|
@@ -209,8 +209,8 @@
|
|
|
alle öffentlichen Dateien für die eigene Anwendung.
|
|
|
<filename>index.php</filename> konfiguriert und startet
|
|
|
<classname>Zend_Application</classname>, welche seinerseits die Datei
|
|
|
- <filename>application/Bootstrap.php</filename> startet, was dazu führt das der
|
|
|
- Front Controller ausgeführt wird. Der Web Root des Web Server sollte
|
|
|
+ <filename>application/Bootstrap.php</filename> startet, was dazu führt, dass der
|
|
|
+ Front Controller ausgeführt wird. Das DocumentRoot des Web Server sollte
|
|
|
typischerweise auf dieses Verzeichnis gesetzt sein.
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -219,22 +219,18 @@
|
|
|
<para>
|
|
|
<emphasis><filename>scripts/</filename></emphasis>: Dieses Verzeichnis enthält
|
|
|
Maintenance und/oder Build Skripte. Solche Skripte können Commandline, Cron oder
|
|
|
- Phing Build Skripte enthalten die nicht wärend der Laufzeit ausgeführt werden,
|
|
|
+ Phing Build Skripte enthalten, die nicht wärend der Laufzeit ausgeführt werden,
|
|
|
aber Teil für das korrekte Funktionieren der Anwendung sind.
|
|
|
- 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><filename>temp/</filename></emphasis>: Das <filename>temp/</filename>
|
|
|
- Verzeichnis wird für vergängliche Anwendungsdaten gesetzt. Diese Information
|
|
|
+ Verzeichnis wird für vergängliche Anwendungsdaten verwendet. Diese Information
|
|
|
würde typischerweise nicht im SVN Repository der Anwendung gespeichert werden.
|
|
|
Wenn Daten im <filename>temp/</filename> Verzeichnis gelöscht werden, sollten
|
|
|
- Anwendungsen dazu in der Lage sein weiterhin zu laufen wärend das möglicherweise
|
|
|
+ Anwendungsen dazu in der Lage sein, weiterhin zu laufen, wärend das möglicherweise
|
|
|
die Geschwindigkeit reduziert bis die Daten wieder gespeichert oder neu
|
|
|
gecacht sind.
|
|
|
</para>
|
|
|
@@ -245,10 +241,10 @@
|
|
|
<emphasis><filename>tests/</filename></emphasis>: Dieses Verzeichnis enthält
|
|
|
Anwendungstests. Diese würden hand-geschrieben sein, PHPUnit Tests, Selenium-RC
|
|
|
basierte Tests oder basierend auf anderen Test Frameworks. Standardmäßig kann
|
|
|
- Library Code getestet werden indem die Verzeichnis Struktur des
|
|
|
- <filename>library/</filename> Verzeichnisses vorgegauckelt wird. Zusätzliche
|
|
|
- funktionale Tests für die eigene Anwendung können geschrieben werden indem die
|
|
|
- Verzeichnis Struktur von <filename>application/</filename> vorgegauckelt wird
|
|
|
+ Library Code getestet werden, indem die Verzeichnisstruktur des
|
|
|
+ <filename>library/</filename> Verzeichnisses vorgegaukelt wird. Zusätzliche
|
|
|
+ funktionale Tests für die eigene Anwendung können geschrieben werden, indem die
|
|
|
+ Verzeichnisstruktur von <filename>application/</filename> vorgegaukelt wird
|
|
|
(inklusive der Unterverzeichnisse der Anwendung).
|
|
|
</para>
|
|
|
</listitem>
|
|
|
@@ -256,11 +252,11 @@
|
|
|
</sect1>
|
|
|
|
|
|
<sect1 id="project-structure.filesystem">
|
|
|
- <title>Modul Struktur</title>
|
|
|
+ <title>Modul-Struktur</title>
|
|
|
|
|
|
<para>
|
|
|
- Die Verzeichnis Struktur für Module sollte jene des
|
|
|
- <filename>application/</filename> Verzeichnisses in der vorgeschlagenen Projekt Struktur
|
|
|
+ Die Verzeichnisstruktur für Module sollte jener des
|
|
|
+ <filename>application/</filename> Verzeichnisses in der vorgeschlagenen Projektstruktur
|
|
|
entsprechen:
|
|
|
</para>
|
|
|
|
|
|
@@ -286,7 +282,7 @@
|
|
|
|
|
|
<para>
|
|
|
Der Zweck dieses Verzeichnisse bleibt exakt der gleiche wie der für die vorgeschlagene
|
|
|
- Verzeichnis Struktur des Projekts.
|
|
|
+ Verzeichnisstruktur des Projekts.
|
|
|
</para>
|
|
|
</sect1>
|
|
|
|
|
|
@@ -296,7 +292,7 @@
|
|
|
<para>
|
|
|
<acronym>URL</acronym> Rewriting ist eine der üblichen Funktionen von
|
|
|
<acronym>HTTP</acronym> Servern. Trotzdem unterscheiden sich die Regeln und die
|
|
|
- Konfiguration zwischen Ihnen sehr stark. Anbei sind einige der üblichen Vorschläge
|
|
|
+ Konfiguration zwischen ihnen sehr stark. Anbei sind einige der üblichen Vorschläge
|
|
|
für eine Vielzahl der populären Webserver zu finden, die zur der Zeit in der das hier
|
|
|
geschrieben wurde, vorhanden sind.
|
|
|
</para>
|
|
|
@@ -306,7 +302,7 @@
|
|
|
|
|
|
<para>
|
|
|
Alle folgenden Beispiel verwenden <property>mod_rewrite</property>, ein offizielles
|
|
|
- Modul das bebündelt mit Apache kommt. Um es zu verwenden muss
|
|
|
+ Modul, das zusammen mit Apache kommt. Um es zu verwenden, muss
|
|
|
<property>mod_rewrite</property> entweder wärend der Zeit des Kompilierens enthalten
|
|
|
sein, oder als Dynamic Shared Objekt (<acronym>DSO</acronym>) aktiviert werden.
|
|
|
Konsultieren Sie bitte die
|
|
|
@@ -353,8 +349,8 @@
|
|
|
|
|
|
<para>
|
|
|
Anbei ist eine einfache <filename>.htaccess</filename> Datei welche
|
|
|
- <property>mod_rewrite</property> verwendet. Das ist Ähnlich der Konfiguration
|
|
|
- für virtuelle Hosts, ausser das Sie nur die Rewrite Regeln spezifiziert, und der
|
|
|
+ <property>mod_rewrite</property> verwendet. Das ist ähnlich der Konfiguration
|
|
|
+ für virtuelle Hosts, ausser dass sie nur die Rewrite Regeln spezifiziert, und der
|
|
|
führende Schrägstrich bei <filename>index.php</filename> nicht angegeben wird.
|
|
|
</para>
|
|
|
|
|
|
@@ -369,7 +365,7 @@ RewriteRule ^.*$ index.php [NC,L]
|
|
|
|
|
|
<para>
|
|
|
Es gibt viele Wege um <property>mod_rewrite</property> zu konfigurieren; wenn
|
|
|
- man weitere Informationen haben will, dann sollte man in Jayson Minard's
|
|
|
+ man weitere Informationen haben will, dann sollte man in Jayson Minards
|
|
|
<ulink url="http://devzone.zend.com/a/70">Blueprint for PHP Applications:
|
|
|
Bootstrapping</ulink> sehen.
|
|
|
</para>
|
|
|
@@ -381,8 +377,8 @@ RewriteRule ^.*$ index.php [NC,L]
|
|
|
<title>Microsoft Internet Information Server</title>
|
|
|
|
|
|
<para>
|
|
|
- Ab Version 7.0 wird <acronym>IIS</acronym> jetzt mit einer Standardmäßigen Rewrite
|
|
|
- Engine ausgeliefert. Man kann die folgende Konfiguration verwenden um die
|
|
|
+ Ab Version 7.0 wird <acronym>IIS</acronym> jetzt mit einer standardmäßigen Rewrite
|
|
|
+ Engine ausgeliefert. Man kann die folgende Konfiguration verwenden, um die
|
|
|
entsprechenden Rewrite Regeln zu erstellen.
|
|
|
</para>
|
|
|
|