67 lines
1.5 KiB
PHP
67 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
/**************************************/
|
||
|
/**** SuperSmash Framework ****/
|
||
|
/**** Created By SuperSmash ****/
|
||
|
/**** Started on: 25-04-2012 ****/
|
||
|
/**************************************/
|
||
|
|
||
|
namespace system\SuperSmash;
|
||
|
|
||
|
if (!defined("SUPERSMASH_FRAMEWORK")){die("You cannot access this page directly!");}
|
||
|
|
||
|
class Registry
|
||
|
{
|
||
|
|
||
|
// Registry array of objects
|
||
|
private static $objects = array();
|
||
|
|
||
|
// The instance of the registry
|
||
|
private static $instance;
|
||
|
|
||
|
// prevent cloning of the registry
|
||
|
public function __clone()
|
||
|
{
|
||
|
// Do nothing
|
||
|
}
|
||
|
|
||
|
|
||
|
// This function will create a singleton if it not has been created yet
|
||
|
public static function singleton()
|
||
|
{
|
||
|
if(!isset(self::$instance))
|
||
|
{
|
||
|
self::$instance = new self();
|
||
|
}
|
||
|
return self::$instance;
|
||
|
}
|
||
|
|
||
|
// This function will get a specified key and returns it
|
||
|
protected function get($key)
|
||
|
{
|
||
|
if(isset(self::$objects[$key]))
|
||
|
{
|
||
|
return self::$objects[$key];
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
// This function will set a specified key
|
||
|
protected function set($key,$value)
|
||
|
{
|
||
|
self::$objects[$key] = $value;
|
||
|
}
|
||
|
|
||
|
// This function will load a specified key and returns the singleton
|
||
|
static function load($key)
|
||
|
{
|
||
|
return self::singleton()->get($key);
|
||
|
}
|
||
|
|
||
|
// This function will store an object as a singleton
|
||
|
static function store($key, $instance)
|
||
|
{
|
||
|
return self::singleton()->set($key,$instance);
|
||
|
}
|
||
|
}
|
||
|
?>
|