Singleton

  • Hi

    geht das nicht?:

    PHP
    $mysql = MySQL::get();
    
    
       // open database connection
       $mysql->connect();


    Fatal error: Call to undefined method Singleton::connect() in D:\Program Files\xampp\htdocs\WebSpeak\index.php on line 30

  • Probier mal einfach funktion singletopn();
    und mach den counstructor nicht privat, wobei das eig. keinen einfluss haben dürfte.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • es wird immer eine singleton instanz erstellt. wenn ich es direkt in die mysql klasse einfüghe geht es. ist aber auch nicht so ellegant :(

  • Den PHP-Code sieht ja niemand, da kannste ruhig unelegant sein :P

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Der Konstruktor sollte protected sein. Du musst aber auch MySQL::get()->connect() aufrufen.
    Wenn du das nicht haben willst, jedoch dennoch ein Singeleton haben willst, füge der Singleton-Klasse folgendes hinzu:

    PHP
    public static function __callStatic($name, $args)
    {
      return call_user_func_array(array(self::get(), $name), $args);
    }