SuperSmash_Framework/system/SuperSmash/registry.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);
}
}
?>