Sir Robin
Erfahrenes Mitglied
Hallo,
ich wollte gerne etwas in PHP programmieren, und es dabei modular aufbauen. Dabei sollte es nicht so ablaufen, das etwa alle Config-Sachen in die config.php kommen, und alle Funktionen in die functions.php ... mein Verständnis von modular bedeutet für mich folgendes :
- es gibt ein Hauptprogramm
- es gibt viele kleine Module, die leicht in das Hauptprogramm integriert/installiert werden können OHNE am Code des Hauptprogramms was ändern zu müssen
- diese Module sollen auch wieder deinstalliert werden können
Okay, nehmen wir, damit wir in der hoffentlich folgenden Diskussion ein Beispielgegenstand haben, einfach mal das allgemeinläufige Beispiel CMS. Dieses CMS soll als optionale Module ein Gästebuch und ein Formmailer drin haben. Diese sind allerdings nicht standardmäßig mit im Funktionsumfang drin, und müssen deswegen als Module nachgeliefert und nachinstalliert werden.
Okay, mein Ansatz dazu sieht folgendermaßen aus:
Es gibt eine Hauptklasse names "modul", die von den jeweilgen Modulen erweitert (extended) wird. Diese Hauptklasse hat einige Funktion drin, die von allen Modulen gebraucht werden, als Beispiele hätte ich hier erstmal sowas simples wie "getVersion" oder sowas. Ansonsten wird sie jedoch nur als Basis genommen und wie schon erwähnt durch die Module erweitert.
Bisher sieht das also so aus:
...dann muss das Modul sich noch selbst aurufen, in Ermangelung einer Funktion wie main() ... (jaja...PHP )
...meine Frage ist nun, ob ihr vielleicht in besseres Konzept, ein erweitertes Konzept habt, oder gar ein völlig anderen Ansatz zur Umsetzung der Modulidee habt. Ob sich dieser ganze OOP-Aufwand mit einer Sprache wie PHP 4 (anfangs 4, später wohl 5, je nach Release der Software und von PHP 5) lohnt? Das Problem daran ist, das es in PHP umgesetzt werden muss. Allerdings verstehe ich auch ein, zwei andere Sprachen, sodass ihr auch Beispiele in anderen Sprachen bringen könnt. Außerdem interessiert mich das Thema auch für die allgemeine Programmierung, ich habs halt nur aktuell in einem PHP Projekt ...
Danke schonmal
ich wollte gerne etwas in PHP programmieren, und es dabei modular aufbauen. Dabei sollte es nicht so ablaufen, das etwa alle Config-Sachen in die config.php kommen, und alle Funktionen in die functions.php ... mein Verständnis von modular bedeutet für mich folgendes :
- es gibt ein Hauptprogramm
- es gibt viele kleine Module, die leicht in das Hauptprogramm integriert/installiert werden können OHNE am Code des Hauptprogramms was ändern zu müssen
- diese Module sollen auch wieder deinstalliert werden können
Okay, nehmen wir, damit wir in der hoffentlich folgenden Diskussion ein Beispielgegenstand haben, einfach mal das allgemeinläufige Beispiel CMS. Dieses CMS soll als optionale Module ein Gästebuch und ein Formmailer drin haben. Diese sind allerdings nicht standardmäßig mit im Funktionsumfang drin, und müssen deswegen als Module nachgeliefert und nachinstalliert werden.
Okay, mein Ansatz dazu sieht folgendermaßen aus:
Es gibt eine Hauptklasse names "modul", die von den jeweilgen Modulen erweitert (extended) wird. Diese Hauptklasse hat einige Funktion drin, die von allen Modulen gebraucht werden, als Beispiele hätte ich hier erstmal sowas simples wie "getVersion" oder sowas. Ansonsten wird sie jedoch nur als Basis genommen und wie schon erwähnt durch die Module erweitert.
Bisher sieht das also so aus:
PHP:
<?php
// Grundklasse
class module{
//...
function getVersion() {
return $this->version;
}
}
// Gästebuchmodul
class guestbook extends module {
//...hier die Methoden für das Gästebuch
}
?>
...dann muss das Modul sich noch selbst aurufen, in Ermangelung einer Funktion wie main() ... (jaja...PHP )
...meine Frage ist nun, ob ihr vielleicht in besseres Konzept, ein erweitertes Konzept habt, oder gar ein völlig anderen Ansatz zur Umsetzung der Modulidee habt. Ob sich dieser ganze OOP-Aufwand mit einer Sprache wie PHP 4 (anfangs 4, später wohl 5, je nach Release der Software und von PHP 5) lohnt? Das Problem daran ist, das es in PHP umgesetzt werden muss. Allerdings verstehe ich auch ein, zwei andere Sprachen, sodass ihr auch Beispiele in anderen Sprachen bringen könnt. Außerdem interessiert mich das Thema auch für die allgemeine Programmierung, ich habs halt nur aktuell in einem PHP Projekt ...
Danke schonmal