phpbar.de logo

Mailinglisten-Archive

[php] Dynamische Klassennamen

[php] Dynamische Klassennamen

Sebastian Mendel lists at sebastianmendel.de
Die Mar 8 11:11:38 CET 2005


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