Artikel
von Patrick Froch

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

Kommentare

Aufgrund der unklaren Rechtslage durch die DSGV habe ich mich entschlossen, die Kommentare bis auf Weiteres zu deaktivieren.