naja, vergleich deinen Code mal mit gängigen CMS Systemen wie z.B. CakePHP.
Diese Systeme sind auch erweiterbar und sind klar getrennt zwischen Anwendung, Kern und Extensions.
In Dynamischen Sprachen ist es sehr leicht Erweiterungen nachzuladen, weil man Klassen dynamisch instanziieren kannst.
Beispiel: Tabelle content
|
Source code
|
1
2
3
|
id type text
1 text Startseite
2 guestbook --
|
Und schon kannst du $row['type'] nutzen um z.B. eine Klasse Gästebuch aus dem Extension Ordner zu laden.
|
PHP Quellcode
|
1
|
$instance = new $row['type']();
|
Weitere Plugin Möglichkeiten sind Eventlistener. Auch diese Events würden sich in die Datenbank einklinken.
Beispiel: Tabelle event
|
Source code
|
1
2
|
id class methode target
1 Content render MyEventListener
|
|
PHP Quellcode
|
1
2
3
4
5
6
|
class Content {
function render() {
EventHandler::fire(get_class($this), __METHOD__);
// do normal stuff
}
|