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 NamespaceApp
. Die hierin enthaltenen Klassen werden durch den Autoloader von Composer geladen.app/Boot
enthält Klassen für den Boot-Vorgang des Frameworks.app/Commands
enthält Commands.app/Controllers
enthält Controller.app/Middleware
enthält Middleware.app/Models
enthält Models.app/Tasks
enthält Tasks.
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 aufindex.php
.public/index.php
ist der Ausgangspunkt für jeden Request.
resources
enthält Ressourcen, die nicht öffentlich erreichbar sein sollen.resources/lang
enthält Dateien für mehrsprachige Anwendungen.
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.