PHP 注册表模式

注册表模式
**/
class Registry{
	
	static private $_store = array();
	static public function add($object,$name = null){
		$name = (!is_null($name))?:get_class($object);
		//回去对象的名称
		$name = strtolower($name);
		//将对象的名称转换为小写
		$return  = null;
		if(isset(self::$_store[$name])){
			$return = self::$_store[$name];
			//echo $return;
		}
		self::$_store[$name] = $object;
		//var_dump(self::$_store[$name]);
		return $return;
	}
	static public function get($name){
		//查询当前对象中是否包含以$name 命名的对象
			if(!self::contains($name)){
				throw new Exception("Object does not exist in registry");
			}
			return self::$_store[$name];
		
	}
	static function contains($name){
		
		if(!isset(self::$_store[$name])){
			return false;
		}
		return true;
	}
	
	
	static public function remove($name){
		if(self::contains($name)){
			unset(self::$_store[$name]);
		}
	}
	
}
class qq{
	
}
$qq = new qq();
Registry::add($qq);
//var_dump($data);
$data = Registry::get('qq');
var_dump($data);


你可能感兴趣的:(PHP,注册表)