* @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() { } /** * @codeCoverageIgnoreStart */ /** * 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); } }