phpbar.de logo

Mailinglisten-Archive

[php] [1/2 Off-Topic] MVC: Creole/Propel, Smarty und Klassen

[php] [1/2 Off-Topic] MVC: Creole/Propel, Smarty und Klassen

Stephan Mehlhase s.mehlhase at id-team.com
Die Mar 15 11:33:44 CET 2005


Hallo Thorsten,

Thorsten Koch wrote:
> Liege ich damit jetzt falsch völlig falsch? Sind die Funktionalitäten
> falsch verteilt? Sind drei Klassen zuviel und ich kann auch nur alles in
> eine packen? 
> Hat jemand n einfaches Beispiel für MVC ?

Das sieht doch eigentlich schon ganz gut aus. Nochmal schnell die 
"Aufgaben" der Komponenten: Das Modell verwaltet die Daten und 
propagiert Änderungen an diesen, der Controller ist für die Verwaltung 
und Interpretation der Eingabe zuständig - gleichzeitig aktualisiert er 
den View. Der View ist entsprechend für die Ausgabe zuständig. Alles in 
eine Klasse zu packen wäre hier der falsche Weg, denn dann machst du 
dabei den Vorteil eines MVC Frameworks kaputt, denn dann kannst du nicht 
einfach mal ein View durch ein anderes ersetzen, etc. Ausserdem werden 
so schön die Daten und die Darstellung dieser getrennt.

Ich würde beim View also ne Methode update() einbauen, die automatisch 
die Sicht neuzeichnet. Das Problem ist in PHP natürlich ein wenig 
komplexer da hier nicht einfach eine GUI vorkommt, die man "einfach" 
neuzeichnen kann. Genauer drüber nachgedacht habe ich jetzt nicht. Ich 
würde weiterhin drauf achten, das ich für den View, den Controller und 
das Modell entsprechende abstrakte Klassen anlege und einfach zu wahren 
das man später einfach Klassen tauschen kann, bzw entspr. anders 
implementieren kann.

Ein einfaches Beispiel wäre z.B. die grafische Darstellung einer 
Tabelle. Die Tabelle wird auf dem Bildschirm angezeigt. Der Benutzer 
klickt in eine Zelle und ändert diese, der Controller benachrichtigt nun 
das Modell und schickt diesem die neuen Daten, gleichzeitig, 
benachrichtigt der Controller den View. Der View holt sich darauf hin 
die neuen Daten aus dem Modell und aktualisiert seine Anzeige.

> 
> Das sind ja jetzt eher Überlegungen, die konzeptioneller Art sind. Muss
> ich bei der Implementierung mit PHP mit der OOP nochmal etwas Besonderes
> beachten?
> 

Im Prinzip nur das PHP5 benutzt wird, weil dies deutlich performanter in 
OOP Angelegenheiten ist und auch viele wichtige OOP Konzepte Unterstützt.

Gruß

Stephan

php::bar PHP Wiki   -   Listenarchive