Mailinglisten-Archive |
Kraft Bernhard wrote:
> Derzeit ist es so das in jedem PHP file genau eine klasse definiert
> wird. Man kann nun das
> System mit Modulen erweitern. Ein Modul soll eine bereits definierte
> Klasse erweitern können.
>
> Somit mache ich in einer Erweiterungsklasse/file:
>
> class ux_baseclass extends baseclass {
> ...
> }
>
> dann gibt es eine funktion makeInstance($classname) die einem eine
> instanz einer klasse erzeugt.
> Beim erzeugen überprüft sie ob eine klasse namens 'ux_'.$classname
> existiert und wenn ja called
> sie makeInstance('ux_'.$classname) ... also rekursiv. Das führt dazu
> wenn ich eine Erweiterungs
> klasse ux_basecalss nocheinmal erweitere:
>
> class ux_ux_basecalss extends ux_baseclass {
> ..
> }
>
> das bewirkt das die "änderungen" beider erweiterungen in der erzeugten
> instanz vorhanden sind.
>
> Das Probelm mit dieser Methode ist halt nur dass ich wissen muss ob eine
> klasse schon einmal erweitert
> wurde ... das heisst ich kann die klassen nicht beliebig erweitern
> sondern der code muss aufeinander
> "abgestimmt" sein.
Sollte sich die Erweiterung nicht selber um die 'Instanzierung' seiner
Klassen kümmern?
Eine Erweiterung sollte doch in Form einer Datei oder eines Verzeichnis
vorliegen, welches von der Anwendung eingebunden wird - der Code in der
Datei sorgt doch dann für die komplette Anbindung, also auch
'Instanzierung' benötigter Objekte, und nicht die Anwendung.
Die Wikipedia-Software macht das z. B. so.
Eventuell könnte man bei der Registrierung der Erweiterung an der
Anwendung noch eine Init-Funktion mitgeben.
--
Sebastian Mendel
www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
php::bar PHP Wiki - Listenarchive