Guten Tag,
ich kam auf die fixe Idee, eine Klasse namens Loader zu schreiben, die sich selbst instanziiert und zugleich auch noch andere Objekte erstellen soll, aber eben nur einmalig.
Das ganze soll nacher noch mit einem Code kombiniert werden, der bestimmte Dateien aus einem Ordner ausließt und die dort enthaltenden Klassen dem Loader zum Fraß vorwirft.
Im Moment ist es nur eine Spielerei.
Mein Problem ist nun, dass er zwar andere Objekte erstellen zu scheint, aber ich nicht auf die Funktionen in denen zugreifen kann. Ich bekomme immer folgende Ausgabe:
Code:
hello world Fatal error: Call to a member function irgend() on a non-object in /srv/www/vhosts/mydomain.tld/httpdocs/loader.php on line 33
Hier mein momentaner Code.
PHP-Code:
<?php
class Loader {
private static $instances = array();
private static $instance = false;
private function __construct() {
}
//Nun folgt die Funktion die Loader erstellt
public static function getInstance() {
if(self::$instance === false) {
self::$instance = new Loader();
}
return self::$instance;
}
//"Sammel" Funktion, die andere Instanzen erstellen soll
public static function getInstances($var) {
if(!in_array($var, self::$instances)) {
self::$instances[$var] = new $var();
}
//Direkte Referenz auf das Objekt zurückgegeben
return $obj &= self::$instances[$var];
}
}
$obj = Loader::getInstance();
class test {
public function test() {
echo "hello world";
}
public function irgend($var){
echo $var;
}
}
$test = $obj->getInstances('test');
$test->irgend('Hallo');
?>
Vielleicht kann mir ja wer auf die Sprünge helfen, wo das Problem liegt.
Danke & Grüße,
ArcVieh