Hallo Leute,
ich hätte da mal eine, für mich wichtige, Verständnisfrage die ihr mir wahrscheinlich schnell beantworten könnt.
Ich hatte vor einigen Jahren ein kleines PHP-Projekt für mich selber gemacht bei welchem ich ziemlich dilettantisch vorgegangen bin.
Ich habe mein ganzes Script in die index.php gelegt und habe selten bis gar nicht Klassen/Objekte erstellt sondern PHP als Zeilenablaufprogramm erstellt ('konventionelle Programmierung'). War jedenfalls sehr wirr und unübersichtlich.
PHP ist jedoch eine OOP-Sprache (also Klassen mit Methoden und Eigenschaften) und daher will ich es jetzt besser machen und 'richtig' OOP programmieren.
Die Frage ist aber: wie weit soll es OOP sein und wie sieht das dann genauer aus?
Lagere ich wirklich alles in Funktionen/Methoden der Klasse aus und rufe dann lediglich die Methoden auf die mir dann HTML-Abschnitte generieren?
Wirklich alles oder doch wieder eine Kombination aus konventioneller Programmierung in der index.php + Klassen?
Will ich z.B. im Body der HTML-Seite eine Navigationsleiste machen, rufe ich an entsprechender Stelle die Methode 'createNaviBar()' der Klasse 'Header' auf (Header wäre dann die Klasse die sich um den Kopfbereich der Seite widmet bzw. diese erstellt und die Methode 'CreateNaviBar' generiert mir dann die Navigationsleiste).
Wie unterteile ich die Klassen dann am besten? Habe ich eine 'gottgleiche' Klasse welche dann jeweils Methoden für die einzelnen Bereiche bereithält?
(objMyPage->createHeadNaviBar(), objMyPAge->createLoginBox(), usw..)
Oder erstelle ich einzelne Klassen für einzelne Bereiche und rufe diese aus dem Root-Dokument (z.B. index.php) auf?
(objHeadNavi->createNaviBar(), objLoginBox->createLoginBox(), usw..)
Oder erstelle ich doch eine Master-Klasse welche dann weitere Objekte für die verschiedenen Bereiche enthält welche ich dann aus dem Root über die Masterklasse dann jeweils aufrufe?
(objMyPage->objHeadNavi->createNavBar(), objMyPage->objLoginBox->createLoginBox(), usw.)
Man könnte ja total übertreiben und in dem Root-Dokument gar keine HTML-Tags oder der Gleichen setzen (also nicht einmal <html></html>, <head></head>, <title></title und <body></body> sondern ALLES eine oder mehrere Klassen machen lassen.
Entschuldigt meine plumpen Fragen, aber wenn man es richtig machen möchte, dann sollte man sich ja nicht bereits am Anfang in den falschen Zug setzen.. und das versuchei ch nun zu vermeiden bzw. es gleich im Kern richtig machen.
Ich hoffe auf aufschlussreiche Antworten und bedanke mich schon einmal im Voraus dafür oder zumindest für das Lesen bis hierhin.
ich hätte da mal eine, für mich wichtige, Verständnisfrage die ihr mir wahrscheinlich schnell beantworten könnt.
Ich hatte vor einigen Jahren ein kleines PHP-Projekt für mich selber gemacht bei welchem ich ziemlich dilettantisch vorgegangen bin.
Ich habe mein ganzes Script in die index.php gelegt und habe selten bis gar nicht Klassen/Objekte erstellt sondern PHP als Zeilenablaufprogramm erstellt ('konventionelle Programmierung'). War jedenfalls sehr wirr und unübersichtlich.
PHP ist jedoch eine OOP-Sprache (also Klassen mit Methoden und Eigenschaften) und daher will ich es jetzt besser machen und 'richtig' OOP programmieren.
Die Frage ist aber: wie weit soll es OOP sein und wie sieht das dann genauer aus?
Lagere ich wirklich alles in Funktionen/Methoden der Klasse aus und rufe dann lediglich die Methoden auf die mir dann HTML-Abschnitte generieren?
Wirklich alles oder doch wieder eine Kombination aus konventioneller Programmierung in der index.php + Klassen?
Will ich z.B. im Body der HTML-Seite eine Navigationsleiste machen, rufe ich an entsprechender Stelle die Methode 'createNaviBar()' der Klasse 'Header' auf (Header wäre dann die Klasse die sich um den Kopfbereich der Seite widmet bzw. diese erstellt und die Methode 'CreateNaviBar' generiert mir dann die Navigationsleiste).
Wie unterteile ich die Klassen dann am besten? Habe ich eine 'gottgleiche' Klasse welche dann jeweils Methoden für die einzelnen Bereiche bereithält?
(objMyPage->createHeadNaviBar(), objMyPAge->createLoginBox(), usw..)
Oder erstelle ich einzelne Klassen für einzelne Bereiche und rufe diese aus dem Root-Dokument (z.B. index.php) auf?
(objHeadNavi->createNaviBar(), objLoginBox->createLoginBox(), usw..)
Oder erstelle ich doch eine Master-Klasse welche dann weitere Objekte für die verschiedenen Bereiche enthält welche ich dann aus dem Root über die Masterklasse dann jeweils aufrufe?
(objMyPage->objHeadNavi->createNavBar(), objMyPage->objLoginBox->createLoginBox(), usw.)
Man könnte ja total übertreiben und in dem Root-Dokument gar keine HTML-Tags oder der Gleichen setzen (also nicht einmal <html></html>, <head></head>, <title></title und <body></body> sondern ALLES eine oder mehrere Klassen machen lassen.
Entschuldigt meine plumpen Fragen, aber wenn man es richtig machen möchte, dann sollte man sich ja nicht bereits am Anfang in den falschen Zug setzen.. und das versuchei ch nun zu vermeiden bzw. es gleich im Kern richtig machen.
Ich hoffe auf aufschlussreiche Antworten und bedanke mich schon einmal im Voraus dafür oder zumindest für das Lesen bis hierhin.
Kommentar