You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.8 KiB

<?php
/**
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
* @package Majestic
* @subpackage Model
* @since 2010-02-17
*/
class Registry extends ArrayObject
{
/**
* Class name of the singleton registry object.
* @var string
*/
private static $_class_name = 'Registry';
/**
* Registry object provides storage for shared objects.
* @var Registry
*/
private static $_registry = null;
/**
* Constructs a parent ArrayObject with default
* ARRAY_AS_PROPS to allow acces as an object
*
* @param array $array data array
* @param integer $flags ArrayObject flags
*/
public function __construct($array = array(), $flags = parent::ARRAY_AS_PROPS)
{
parent::__construct($array, $flags);
}
/**
* Refuse clone
* @codeCoverageIgnoreStart
*/
private function __clone()
{
}
/**
* @codeCoverageIgnoreEnd
*/
/**
* Retrieves the default registry instance.
*
* @return Registry
*/
public static function getInstance()
{
if (self::$_registry === null) {
self::$_registry = new self::$_class_name();
}
return self::$_registry;
}
static public function get($name, $default = null)
{
$instance = self::getInstance();
if (!$instance->offsetExists($name)) {
return $default;
}
return $instance->offsetGet($name);
}
public static function set($index, $value)
{
$instance = self::getInstance();
$instance->offsetSet($index, $value);
}
public static function isRegistered($index)
{
if (self::$_registry === null) {
return false;
}
return self::$_registry->offsetExists($index);
}
}