dedlfix: OOP Konflikt

Beitrag lesen

echo $begrüßung;

» Ich würde das Ganze nach dem MVC-Pattern aufbauen. Schau dir mal an, wie man mit dem Zend Framework eine Anwendung erstellt.
Hm und wie würdest du das machen?
Also soll ich nur das Board-System so aufbauen oder die komplette Seite?

Alles oder nichts. Gemischt wird unübersichtlich.

Also nach die Klassen die hinzukommen werden wie Navigation, Registrierung, Login/Out, Kontaktformular usw.. alles zusammen als EIN MVC Pattern? Alles einzelnd als MVC Pattern?

Diverse vorbereitende Abläufe sind im MVC-Teil schlecht aufgehoben, weil sie für jeden Controller implementiert werden müssten. Es wird sicher eine Superklasse für alle Controller geben, doch auch da sind diese gemeinsamen Teile fehlplatziert. Als "Türwächter" gibt es dazu einen Front Controller. Der ermittelt nicht nur, welcher Controller aufgerufen werden muss, er kümmert sich auch um Authentifizierung und Autorisierung des jeweiligen Requests, denn das muss ja vor dem Controller-Aufruf passieren.

Registrierung, Login/-out und Kontaktformuler sind Aufgaben für Controller. Wenn du unter Navigation das Erstellen von HTML-Code für Menüs und dergleichen meinst, dann ist das Aufgabe der Views. Die bedienen sich für das HTML-Grundgerüst und gemeinsame Teile der Ausgabe am besten eines Master-Templates.

Und dann Artikel, Kategorien einzelnd oder alles zusammen ein MVC?

Überleg dir, welche Abläufe zur gleichen Aufgabengruppe gehören und bau für jede dieser Aufgabengruppen einen Controller. Der dirigiert aber nur, sorgt dafür, dass die Daten aus der richtigen Quelle (Model) abgefragt werden und ans richtige Ziel (View) gelangen. Das Daten-Handling übernimmt das Model und sämtliche Aufbereitung für die Ausgabe macht die View.

Sehr schön ist das MVC-Pattern auch für die jüngst freigegebene MVC-Implementierung für ASP.NET beschrieben. Der Code dort ist zwar Visual Basic .NET und C# und einige Dinge auch .NET-spezifisch, aber das Prinzip der Aufgabenteilung zwischen den Bestandteilen des MVC sollte auch so zu erkennen sein.

echo "$verabschiedung $name";