Skip to content

Projektstruktur

Alle auf dem Framework basierenden Projekte sollten folgender Struktur entsprechen. Der einheitliche Aufbau hat den Vorteil, dass man sich in Projekten anderer Entwickler schneller zurechtfindet.

Ordner

  • app ist das Verzeichnis für den Namespace App. Die hierin enthaltenen Klassen werden durch den Autoloader von Composer geladen.
  • config enthält Konfigurationsdateien.
    • config/framework.php enthält Optionen für das Framework.
  • public ist das Root-Verzeichnis des Projekts auf dem Webserver und somit von außen erreichbar.
    • public/src enthält Ressourcen, die öffentlich erreichbar sein müssen (CSS, JavaScript, Bilder).
    • public/.htaccess enthält Regeln für die Weiterleitung aller Requests auf index.php.
    • public/index.php ist der Ausgangspunkt für jeden Request.
  • resources enthält Ressourcen, die nicht öffentlich erreichbar sein sollen.
  • storage dient als Speicherort für Dateien, die von Git ignoriert werden sollen. Bei einer neuen Installation des Frameworks existiert dieser Ordner noch nicht.
    • storage/cache enthält Cache-Dateien, zum Beispiel von Views.
    • storage/logs enthält Log-Dateien im Textformat (siehe Logging).
  • vendor enthält die von Composer installierten Abhängigkeiten. Die hierin enthaltenen Dateien sollten auf keinen Fall bearbeitet werden, da Änderungen beim nächsten Update verloren gehen.
  • views enthält die Views der Anwendung.

Dateien

Des Weiteren befinden sich im Projektverzeichnis folgende Dateien.

  • .gitignore gibt an, welche Dateien und Ordner von Git ignoriert werden sollen.
  • auth.json enthält ein Access Token für die RHRZ-internen GitLab-Repositories.
  • cmd ist das Command Line Interface des Frameworks.
  • composer.json definiert die Abhängigkeiten des Projekts sowie Composer-Metadaten.
  • composer.lock enthält Informationen zu den installierten Versionen der Abhängigkeiten. Diese Datei wird von Composer automatisch erstellt und soll nicht bearbeitet werden.
  • env.php enthält Umgebungsvariablen wie Passwörter und wird von Git ignoriert.
  • README.md sollte eine kurze Beschreibung des Projekts im Markdown-Format enthalten.