Klare Grenzen, schrittweise Weiterentwicklung
Anfrageablauf
Nginx liefert öffentliche Assets aus und leitet ausschließlich index.php an PHP-FPM weiter. Laravel wendet Sprache, Indexierungsrichtlinie und Analysen an, bevor schlanke Controller aufgerufen werden. Repositories und Dienste kapseln Inhalte, Medien, Dokumentation und Aggregationen.
Zentrale Entscheidungen
Serverseitiges Rendering als Grundlage
Blade erzeugt auch ohne JavaScript vollständige Inhalte. Asynchrone Tabs, Audio und Demos sind progressive Erweiterungen: Ein clientseitiger Fehler entfernt weder wesentliche Inhalte noch die Navigation.
Strukturierte Daten ohne Duplikate
Projekte, Kompetenzen, Interessen und Lebenslaufdaten verbleiben in der Datenbank. Narrative Inhalte werden versioniert, während Referenzen ausschließlich über zugelassene Slugs aufgelöst werden.
Umkehrbare Vorgänge
Uploads und Datenänderungen verwenden Transaktionen. Verwaiste Medien werden vor dem Löschen mit einem Manifest unter Quarantäne gestellt. Deployments und Migrationen enthalten Smoke-Tests und Rollback-Pfade.
Datenschutz und Sicherheit als Standard
Analysen speichern zusammengefasste Werte statt personenbezogener Ereignisse. Administrationsrouten verwenden Rollen und Policies; öffentliche Dokumente nutzen eine Positivliste und Markdown ohne rohes HTML oder unsichere Links.
Ein Beispiel der vom Renderer erzwungenen Konfiguration:
new Environment([
'html_input' => 'strip',
'allow_unsafe_links' => false,
]);
Die Fallstudien zeigen diese Entscheidungen in der Praxis.