gene框架文档 - 注册类 gene_reg
注册类 Gene\Reg
-
介绍
Gene\Reg 是gene框架的核心类之一,用Gene\Reg来做单例集中管理非常方便,效率极高。
-
实例化
初始化reg。Gene\Reg用来存取对象,适合管理单对象,提供的方法都是静态方法。
参数:
无
返回值: Gene\Reg实例化对象本身。
实例:
//实例化注册对象 $reg = new Gene\Reg(); -
set
设置对象。
参数:
参数 类型 是否必填 注释 keyName String 是 配置名称。 value object 是 实例化化的对象。 返回值: boolean。
实例:
$aClass = new demo(); Gene\Reg::set("testClass",$a); -
get
获取对象。
参数:
参数 类型 是否必填 注释 keyName String 否 配置名称。 返回值: object 对象。
实例:
$aClass = Gene\Reg::get("testClass"); -
del
删除对象。
参数:
参数 类型 是否必填 注释 keyName String 否 配置名称。 返回值: boolean。
实例:
Gene\Reg::del("testClass"); -
has
判断对象是否已存在。
参数:
参数 类型 是否必填 注释 keyName String 否 配置名称。 返回值: boolean。
实例:
$result = Gene\Reg::has("testClass") -
综合使用例子
在框架中,通常封装工厂模式,需要实现单例,用Gene\Reg就很方便了,并且可以全项目通用。
参数:
参数 类型 是否必填 注释 keyName String 否 配置名称。 返回值: boolean。
实例:数据库工厂
/** * Connect db from config * * @param array $config db config * @param string db config key name * @return Db */ public function db($name = NULL) { NULL === $name && $name = $this->_db; if (is_array($name)) { return Ext\Com\Db::factory($name); } $regName = "_db_{$name}"; if (!$db = Gene\Reg::get($regName)) { $config = (array) Gene\Application::config($name); $db = Ext\Com\Db::factory($config); Gene\Reg::set($regName, $db); } return $db; }

浙公网安备 33010602011771号