Skip to content

Schichtenarchitektur (Multitier Architecture) in Symfony Projekten

Avatar of Rafal Wesolowski Rafal Wesolowski

Stellt dir vor, du musst eine Applikation von Scratch schreiben. Der Kunde will einen Auto-Konfigurator mit Login, Recht, Rollen und Freigabe Prozess haben. Dafür bietet sich zum Beispiel ein Framework wie Symfony an. Symfony bringt viele Funktion von Haus aus mit. Mit der beinhalteten Struktur, kannst du direkt loslegen. Dann kannst du z.B. 6 Klassen in Controller-Folder, 10 Services, x-Repositorien und x-Entity erstellen.
Das Projekt ist fertig, der Kunde ist glücklich, perfekt! Er ist so glücklich, dass er mit dir weiterarbeiten möchte.Er möchte die Applikation auf andere Länder mit neuen Funktionen ausrollen!
Dann stellst du auf einmal fest, je mehr Leute die Applikation nutzen, desto größer wird unsere Datenbank und es kommt zu Engpässen.
Die Lösung ist die Integration von Caching. Und jetzt bekommst du Probleme, weil in dem verwendeten MVC-Symfony-Model alles in einen Haufen gepackt ist und so die Wahrscheinlichkeit, dass du unerwünschte Nebeneffekte bekommst sehr hoch ist.
Plötzlich wird also aus deiner Cooler-Applikation zu einem Albtraumprojekt! Um das zu vermeiden solltest du dir am Start des Projekts eine saubere und skalierbare Struktur ausdenken. Genau dabei hilft einem die Schichtenarchitektur. Diese teilt die Applikation in andere Abschnitte, verglichen mit dem MVC-Prinzip, auf. Zusätzlich solltest du so modular entwickeln, dass jede Komponente ohne größeren Aufwand austauschbar ist.
Denn so bist du später weiterhin richtig flexibel! Ein Problem gibt es jedoch noch. Nachdem du dir jetzt eine coole neue Architektur für dein Projekt ausgedacht hast merkst du – dein Team muss diese ja ebenfalls einhalten..
Doch wie kannst du das sicherstellen, dass deine Kollegen die Schichtenarchitektur richtig einhalten, ohne ihnen permanent auf die Finger zu schauen?
Zum Glück gibt es dafür Tool, z.B. Deptrac. Im weiteren Verlauf werde ich dir auch die Anwendung dieses Tool zeigen.

Findet statt in Deutsch
Zimmer:
Track SensioLabs

Freitag, April 16, 2021 at 13:30 PM – 14:05 PM

Intermediate talk, some familiarity with the topic required.