Hallo,
bisher habe ich hauptsächlich prozedural "gecodet" und höchstens mal eine (fremde) Klasse eingebunden. In letzter Zeit habe ich mich dann mal ausführlicher mit OOP beschäftigt und finde das auch alles ganz schön und gut. Die Beispiele in den zahlreichen Tutorials habe ich kapiert und finde den OOP-Ansatz auch ganz elegant!
Nur sind das meist recht simple Beispiele mit ein paar Zeilen Code, und ich frage mich nun: wie geht man ein größeres Projekt mit OOP an? Also z.B. eine Web-Applikation mit Registrierung, Log in, User-Bereich, Artikel verfassen, Kommentieren usw.?
Bisher habe ich das etwa so gemacht:
$action = irgendwie_die_action_ermitteln();
switch($action)
{
case 'register':
include('register.php');
break;
case 'login':
include('login.php');
break;
case 'sonstwas':
include('sonstwas.php');
break;
}
...also die verschiedenen Bereiche aufgeteilt in einzelne Dateien und nach bedarf "includiert".
Wie mache ich das mit OOP? Als erstes fällt mir so etwas ein:
$meineKillerApplikation = new KillerApplikation();
switch($meineKillerApplikation->action)
{
case 'register':
$meineKillerApplikation->register();
break;
case 'login':
$meineKillerApplikation->login();
break;
case 'sonstwas':
$meineKillerApplikation->sonstwas();
break;
}
Nun hat sich mein Hauptprogramm kaum geändert und ich habe eine riesige unübersichtliche Klasse mit unzähligen Methoden, die vorher in einzelnen Dateien untergebracht waren.
Also teile ich das Ganze in verschiedene Klassen auf:
$action = irgendwie_die_action_ermitteln();
switch($action)
{
case 'register':
include('userverwaltung.class.php')
$userverwaltung = new Userwerwaltung();
$userverwaltung->register();
break;
case 'login':
include('userverwaltung.class.php')
$userverwaltung = new Userwerwaltung();
$userverwaltung->login();
break;
case 'sonstwas':
include('sonstwas.class.php')
$sonstwas = new Sonstwas();
}
Ist das jetzt elegantes OOP??? Mein Hauptprogramm ist ja immer noch prozedural und ist im Prinzip kaum anders als die erste Variante.
Hilfreich wäre es, sich mal ein "elegant" und O. o. programmiertes Skript anschauen zu können. Ein paar bekannte wie phpBB oder Wordpress habe ich mir bereits angeschaut - eleganter OOP-Code ist das aber nicht gerade... Kennt jemand ein gut programmiertes größeres Skript?
Danke!
Mark