Artikel
von Patrick Froch

Symfony2: Verzeichnisstruktur

Hier möchte ich einmal auf die Verzeichnisstruktur einer Symfony2-Installation eingehen. Wenn man Symfony installiert, sollte man folgende Ordner vorfinden:

  • app/ – Konfiguration der Anwendung
  • src/ – der PHP-Quelltext des Projekts
  • vendor/ – Bibliotheken
  • web/ – Root-Ordner für den Web-Zugriff

app/ - Konfiguration der Anwendung

Hier werden die allgemeinen Konfigurationsdateien der Anwendung gespeichert. Unter anderem liegt hier die AppKernel.php, in der die Bundels registriert werden. Unter app/config/ befinden sich z.B. die Dateien config.yml und routing.yml. Hier liegen ebenfalls die Log-Dateien und das Cache-Verzeichnis.

src/ - der PHP-Quelltext des Projekts

Hier liegt der PHP-Code des Projekts. Wir erinnern uns, in Symfony ist alles in Bundles organisiert und hier liegen die Verzeichnisse der einzelnen Bundels die wir schreiben. Der Symfony-Core ist zwar auch in Bundles organisiert, leigt aber im /verdor-Verzeichnis. Im /src-Verzeichnis wird erst ein Ordner für den Namespace angelegt und darin einer für das Bundle. Die Demo-Bundels haben in der Regel den Namespace Acme. Wird nun das Demo-Bundle HelloBundle angelegt, so befindet es sich unter /src/Acme/HelloBundle.

src/Acme/BUNDLE - Verzeichnisstruktur eines Bundles

BUNDLE ist durch den Namen des Bundles zu ersetzen. Im obrigen Beispiel wäre es HelloBundle. Es sollte mindestens folgende Verzeichnisstruktur vorhanden sein:
  • Controller/ - Controller des Pakets
  • DependencyInjection/ - Komponenten der dependency injection
  • Resources/config/ - Konfiguration
  • Resources/views/ - Templates (Twig- o. PHP-Dateien)
  • Resources/public/ - Bilder, JavaScript, CSS usw.
  • Tests/ - Unittests

Die folgenden Verzeichnisse haben eine spezielle Bedeutung und sollte entsprechend benutzt werden:

Typ Verzeichnis
Commands Command/
Controllers Controller/
Service Container Extensions DependencyInjection/
Event Listeners EventListener/
Configuration Resources/config/
Web Resources Resources/public/
Translation files Resources/translations/
Templates Resources/views/
Unit and Functional Tests Tests/

vendor/ - Bibliotheken

Hier befinden sich die externen Bibliotheken und der Symfony-Core. In der Regel wird man mit diesem Verzeichnis wenig zu tun haben, gerade wenn man Composer verwendet.

web/ - Root-Ordner für den Web-Zugriff

Hier liegen die Dateien auf die mit dem Browser direkt zugegriffen werden kann. Auch hier sind nur selten Änderungen nötig.

Zurück

Einen Kommentar schreiben

Bitte rechnen Sie 3 plus 9.