JaguarGorgone
Mitglied
Hallo,
ich programmiere gerade ein CMS und nutze dafür Klassen.
Jetzt dachte ich mir, dass man die Instantiierung der Klassen automatisieren könnte.
Die Voraussetzungen dafür sind, dass der Dateiname gleich der Klasse und auch gleich der Variablen mit dem Objekt ist.
Alle Klassendateien befinden sich in einem Verzeichnis.
Jetzt wird das Verzeichnis ausgelesen und auf das von mir definierte Klassenmerkmal (Dateiendung class.php) überprüft. Zunächst wird die Datei eingebunden mit include.
In einem zweiten Schritt wird das Verzeichnis erneut ausgelesen und nun in einer Schleife eine Instanz jeder Klasse erzeugt.
Der Code für die Instantiierung:
Leider funktioniert das nicht. Später taucht nämlich dann die Fehlermeldung auf:
was ja darauf schliessen lässt, dass die Instanz nicht existiert.
Ich denke das Problem liegt bei
Meine Frage also, ob die dynamische Erzeugung möglich ist und wenn ja, wie. Oder muss ich mich von dem Gedanken verabschieden?
Danke für Eure Hilfe
ich programmiere gerade ein CMS und nutze dafür Klassen.
Jetzt dachte ich mir, dass man die Instantiierung der Klassen automatisieren könnte.
Die Voraussetzungen dafür sind, dass der Dateiname gleich der Klasse und auch gleich der Variablen mit dem Objekt ist.
Alle Klassendateien befinden sich in einem Verzeichnis.
Jetzt wird das Verzeichnis ausgelesen und auf das von mir definierte Klassenmerkmal (Dateiendung class.php) überprüft. Zunächst wird die Datei eingebunden mit include.
In einem zweiten Schritt wird das Verzeichnis erneut ausgelesen und nun in einer Schleife eine Instanz jeder Klasse erzeugt.
Der Code für die Instantiierung:
PHP:
$class = explode(".", $file); // Liest den Dateinamen aus (= Name der Klasse)
if(class_exists($class[0])) // Überprüfung, ob die Klasse besteht
{
${$class[0]} = new $class[0]; // Erzeugung einer neuen Instanz der Klasse
}
Leider funktioniert das nicht. Später taucht nämlich dann die Fehlermeldung auf:
Code:
Call to a member function ... on a non-object in ...
Ich denke das Problem liegt bei
Code:
new $class[0]
Meine Frage also, ob die dynamische Erzeugung möglich ist und wenn ja, wie. Oder muss ich mich von dem Gedanken verabschieden?
Danke für Eure Hilfe