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