Wie kann ich eine statische Methode für eine Variablenklasse aufrufen?

Ich versuche, eine Art von Funktion geladen und instanziiert eine Klasse, die aus einer bestimmten variable. So etwas wie dieses:

<?php
function loadClass($class) {
  $sClassPath = SYSPATH."/classes/{$class}.php";
  if (file_exists($sClassPath)) {
    require_once($sClassPath);
    $class = $class::getInstance();
  }
}
?>

Wenn ich es wie folgt:

<?php
  loadClass('session');
?>

Sollte und instanzieren der session Klasse.

BTW: die statische getInstance-Funktion kommt von dieser-code:

<?php
  function getCallingClass() {
    $backtrace = debug_backtrace();
    $method    = $backtrace[1]['function'];
    $file      = file($backtrace[1]['file']);
    $line      = $file[($backtrace[1]['line'] - 1)];
    $class     = trim(preg_replace("/^.+?([A-Za-z0-9_]*)::{$method}\(.*$/s", "\\1\\2", $line));

    if(! class_exists($class)) {
      return false;
    } return $class;
  }

  class Core {

    protected static $instances = array();

    public static function getInstance() {
      $class = getCallingClass();

      if (!isset(self::$instances[$class])) {
        self::$instances[$class] = new $class();
      } return self::$instances[$class];
    }

  }

?>

Der Sache ist, dass jetzt der Weg, um die Funktionen in einer Klasse ist das denn:

<?php
  $session = session::getInstance();
?>

Nun aber, das ich bauen will, in eine Funktion, so dass ich nie wieder zu verwenden, die code-Zeile.
Ich sage nur loadClass('session');
und als ich verwenden können $session->blablablafunction();

InformationsquelleAutor der Frage | 2009-03-13

Schreibe einen Kommentar