php配置加载器

模板网 2021-04-19

配置加载器

当我们使用App::cfg系列方法获取配置时,wulaphp是通过配置加载器先加载配置然后再返回配置项对应值的(当然可以返回整个配置数组)。配置加载器ConfigurationLoader有两个方法:

  1. loadConfig - 加载普通配置并返回Configuration实例或其子类的实例。
  2. loadDatabaseConfig - 加载数据库配置并返回DatabaseConfiguration实例。

除了上边的两个方法还有两个方法(来自BaseConfigurationLoader):

  1. beforeLoad - 加载默认配置前执行
  2. postLoad - 加载默认配置后执行

默认的加载器已经可以很好的工作了,如果不能满足你,请自定义你的配置加载器。默认配置在应用(App)启动时加载(具体加载流程见请求处理),其它组的配置则按需加载。

自定义配置加载器

如果你不想从php文件加载配置甚或你不想从本地加载配置,你都可以自己实现配置加载器按你自己需要去加载配置,只要记得最后返回一个Configuration实例就行。下边代码示例从ini文件(也放在conf目录下)加载配置:

class MyConfigurationLoader extends ConfigurationLoader {
    public function loadConfig($name = 'default') {
        $config = new Configuration($name);
        $file   = CONFIG_PATH . $name . '.ini';
        if (is_file($file)) {
            $cfg = parse_ini_file($file, true);
            if ($cfg) {
                $config->setConfigs($cfg);
            }
        }

        return $config;
    }
}

O了,自定义加载器完成,可以加载普通的配置了,要想加载『数据库配置』请实现loadDatabaseConfig方法。

使用自定义配置加载器

有了自定义加载器类就可以修改bootstrap.php文件中的CONFIG_LOADER_CLASS常量了:

define('CONFIG_LOADER_CLASS', 'MyConfigurationLoader');

重点说明: 要写全类名(包含命名空间的)。

自定义加载器完成。

相关文章

  1. 使用create-react-app快速搭建react环境

    使用create-react-app快速搭建react环境 npm install create-react-app -g cd test_dir create-react-app demo_rea

  2. javascript中的正则表达式

    javascript正则表达式的定义 JavaScript中的正则表达式定义在一个RegExp对象中,通过实例化一个RegExp构造函数来创建一个正则表达式对象var pattern=new R

  3. VirtualBox 中安装 Ubuntu 虚拟机并配置文件共享

    安装后,有时出现共享目录无法加载的现象,最后决定放弃,采用 VMWare Player !! 安装 VirtualBox 访问 https://www.virtualbox.org/ 下载最新版 V

  4. Sublime Text 快捷键汇总

    [TOC] 快捷键 作用 command+q 退出sublime command+w 退出当前正在编辑的文件 command+e 使用所选内容查找 command+r 跳转定

  5. solr 的Admin界面

    query 1.q(query):定义查询的原始输入字符串。多个条件用AND、OR连接。一定存在在字段前加+号,不存在时在字段前面加-号 ``` company_name:上海有限责任公司 AND

随机推荐

  1. 使用create-react-app快速搭建react环境

    使用create-react-app快速搭建react环境 npm install create-react-app -g cd test_dir create-react-app demo_rea

  2. javascript中的正则表达式

    javascript正则表达式的定义 JavaScript中的正则表达式定义在一个RegExp对象中,通过实例化一个RegExp构造函数来创建一个正则表达式对象var pattern=new R

  3. VirtualBox 中安装 Ubuntu 虚拟机并配置文件共享

    安装后,有时出现共享目录无法加载的现象,最后决定放弃,采用 VMWare Player !! 安装 VirtualBox 访问 https://www.virtualbox.org/ 下载最新版 V

  4. Sublime Text 快捷键汇总

    [TOC] 快捷键 作用 command+q 退出sublime command+w 退出当前正在编辑的文件 command+e 使用所选内容查找 command+r 跳转定

  5. solr 的Admin界面

    query 1.q(query):定义查询的原始输入字符串。多个条件用AND、OR连接。一定存在在字段前加+号,不存在时在字段前面加-号 ``` company_name:上海有限责任公司 AND