Hallo liebe Forumsgemeinde ;-)
ich arbeite seit längerem schon mit PHP, habe allerdings noch nie Schritte in Richtung OOP unternommen. Das hat sich jetzt geändert. In den letzten Tagen hab ich mich intensiv damit beschäftigt, weil mir die einfachen PHP-Bordmittel für ein größeres Projekt (scheinbar) nicht mehr ausreichen.
Ich bin dabei, ein modulares CMS zu schreiben. Bedienkomfort und leichte handhabung stehen dabei im Vordergrund, deshalb möchte ich das CMS modular über Plugins aufbauen. Also einen "PHP-Core" schreiben (mit den Grundfunktionen), der sich dann - auch vom Kunden - über Plugins einfach erweitern lässt.
Wenn ich ein Plugin auf Knopfdruck installiere, will ich natürlich nicht auch noch irgendwelche Code-Anpassungen vornehmen müssen! Das erfordert dann aber, dass ich bestimmte Code-Stellen bzw. Funktionen "überschreiben" müsste. Dadurch bin ich dann auf die OOP-Schiene gekommen, wobei ich da momentan auch noch keinen Ansatzpunkt finde.
Um das ganze mal etwas konkreter zu machen, will ich's euch kurz anhand eines Beispiels erläutern:
Versteht ihr was ich meine?
Ein Ansatzpunkt wäre z.B., dass ich die zwei Funktionen bzw. Klassen in zwei getrennten Dateien speichere, und jenachdem ob das Blog-Plugin aktiviert ist oder nicht, die eine oder andere Datei einlesen. Dann müsste ich das aber im Core-Code definieren. Also z.B. über ein Switch. Das setzt aber voraus, dass ich weiß, welche Plugins es später alles geben wird => schlecht!
Hat von euch jemand vielleicht eine Idee wie man das ganze so modular anpassen könnte? Und ist OOP da wirklich notwendig?
Wäre super wenn mir da jemand weietrhelfen könnte, bei mir hängt's leider grad n bisschen
ich arbeite seit längerem schon mit PHP, habe allerdings noch nie Schritte in Richtung OOP unternommen. Das hat sich jetzt geändert. In den letzten Tagen hab ich mich intensiv damit beschäftigt, weil mir die einfachen PHP-Bordmittel für ein größeres Projekt (scheinbar) nicht mehr ausreichen.
Ich bin dabei, ein modulares CMS zu schreiben. Bedienkomfort und leichte handhabung stehen dabei im Vordergrund, deshalb möchte ich das CMS modular über Plugins aufbauen. Also einen "PHP-Core" schreiben (mit den Grundfunktionen), der sich dann - auch vom Kunden - über Plugins einfach erweitern lässt.
Wenn ich ein Plugin auf Knopfdruck installiere, will ich natürlich nicht auch noch irgendwelche Code-Anpassungen vornehmen müssen! Das erfordert dann aber, dass ich bestimmte Code-Stellen bzw. Funktionen "überschreiben" müsste. Dadurch bin ich dann auf die OOP-Schiene gekommen, wobei ich da momentan auch noch keinen Ansatzpunkt finde.
Um das ganze mal etwas konkreter zu machen, will ich's euch kurz anhand eines Beispiels erläutern:
Angenommen die Grundfunktion würde nur das Anlegen einer statischen Seite (à la Wordpress) erlauben. Die Ausgabe dieser Seite würde über die Funktion get_content() erfolgen.
Jetzt will der Kunde eine oder mehrere Seiten aber in Blog-Form gestalten, also installiert er das Blog-Plugin. Die Ausgabe der Blog-Inhalte erfordert im Hintergrund aber anderen Code als die Ausgabe einer statischen Seite. Die Funktion get_content() muss aber die gleiche bleiben, weil ich ja explizit NICHT den Code (in z.B. get_blog_content() ändern will.
Jetzt will der Kunde eine oder mehrere Seiten aber in Blog-Form gestalten, also installiert er das Blog-Plugin. Die Ausgabe der Blog-Inhalte erfordert im Hintergrund aber anderen Code als die Ausgabe einer statischen Seite. Die Funktion get_content() muss aber die gleiche bleiben, weil ich ja explizit NICHT den Code (in z.B. get_blog_content() ändern will.
Ein Ansatzpunkt wäre z.B., dass ich die zwei Funktionen bzw. Klassen in zwei getrennten Dateien speichere, und jenachdem ob das Blog-Plugin aktiviert ist oder nicht, die eine oder andere Datei einlesen. Dann müsste ich das aber im Core-Code definieren. Also z.B. über ein Switch. Das setzt aber voraus, dass ich weiß, welche Plugins es später alles geben wird => schlecht!
Hat von euch jemand vielleicht eine Idee wie man das ganze so modular anpassen könnte? Und ist OOP da wirklich notwendig?
Wäre super wenn mir da jemand weietrhelfen könnte, bei mir hängt's leider grad n bisschen
Kommentar