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;
    }
posted @ 2016-12-21 13:40  sasou  阅读(126)  评论(0)    收藏  举报