MVC – diese drei Buchstaben haben es in sich. MVC ist ein Design Pattern, eine strukturelle Lösung für Entwickler. Kaum ein anderes Design Pattern löst so viel Kontroverse aus und regt zu endlosen Diskussionen an – zumindest in der PHP-Welt.
Das liegt daran, dass MVC recht oberflächlich beschrieben wird, und möchte man sämtliche MVC-Erklärungsversuche zusammenfassen, so ist man schnell der Auffassung:
- Model (M) : Die Verbindung zur Datenbank
- View (V) : Die Ausgabe an den Benutzer
- Controller (C) : Der Verwalter zwischen den Schichten
Die Wahrheit ist aber: Es ist viel mehr als das. Der große Fehler, den MVC-Neulinge dabei begehen, ist, ihr Projekt nur nach diesen Gesichtspunkten zu gestalten. Oft wird übersehen, dass MVC nur eines von mehreren Zahnrädern in einer ganz anderen Schichtenarchitektur ist: Der Präsentationsschicht, der Logikschicht (auch als Businessschicht bezeichnet) und der Persistenzschicht. MVC agiert in allen drei Schichten, hauptsächlich jedoch in der Präsentationsschicht. Verfolgt man MVC-Diskussionen in gängigen Foren, kommt erschwerend hinzu, dass jeder MVC etwas anders auslegt. Es gibt also nicht selten kein “richtig” oder “falsch”. Die Grenzen, die MVC versucht aufzuzeigen, scheinen paradoxerweise ineinander zu verschwimmen.
Ich versuche, mit diesem Artikel dem Verständnis von MVC auf die Sprünge zu helfen, ich betone aber, dass dies nur meine Auffassung des Patterns ist. Ich möchte daher nicht deutlich machen, dass meine Ansicht die richtige oder die falsche ist – es ist eher ein mögliches Konzept zur strukturellen Realisierung von MVC. Außerdem liefere ich hier kein MVC-Tutorial, die allgemeine Funktion des Patterns sollte bekannt sein.


