Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 06.08.2007, 15:34
Benutzerbild von ArcVieh
ArcVieh ArcVieh ist offline
//
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 19.12.2006
Ort: Gütersloh
Beiträge: 1.844
ArcVieh sorgt für eine eindrucksvolle AtmosphäreArcVieh sorgt für eine eindrucksvolle Atmosphäre
Standard Singleton Pattern Problem, OOP, PHP

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($varself::$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
Mit Zitat antworten
Sponsored Links