Psychomentis
Mitglied
So sieht meine Klasse jetzt aus ist.
Jetzt müsste ich nur noch im Konstruktor die Klassen definieren und initialisieren?
oder später wie folgt
Ist das so richtig?
PHP:
class Core
{
private static $instance = NULL;
protected $registry = NULL;
public function __construct()
{
if(!function_exists("spl_autoload_register"))
{
throw new Exception("autoload functions are not available in this PHP installation");
}
spl_autoload_register(array($this, 'autoload'));
}
private function __clone()
{
}
public static function __set($key, $value)
{
if(!isset($key) || is_null($value))
{
throw new Exception(sprintf("Unable to set variable `%s`. It was already set.", $key));
}
self::$registry[$key] = $value;
}
public static function __get($key)
{
if(!array_key_exists($key, self::$registry))
{
throw new Exception(sprintf("%s couln´t found in services!", $key));
}
return is_callable(self::$registry[$key]) ? self::$registry[$key]($this) : self::$registry[$key];
}
public function __isset($key)
{
return array_key_exists(self::$registry[$key]);
}
public static function __unset($key)
{
unset(self::$registry[$key];
}
public static function getInstance()
{
if(is_null(self::$instance))
{
self::$instance = new self();
}
return self::$instance;
}
public function autoload($class)
{
$file = strtolower($class).'.php';
if(!file_exists($file) || !is_readable($file))
{
throw new LogicException(sprintf("%s does not exist or is not readable",$file));
}
return include_once($file);
}
}
Jetzt müsste ich nur noch im Konstruktor die Klassen definieren und initialisieren?
PHP:
class Core
{
protected $language = NULL;
protected $template = NULL;
public function __construct()
{
self::$language = new Language();
self::$template = new Template();
}
}
PHP:
$core = new Core();
$core->language = new Language();
$core->template = new Template();