动态载入配置文件

 

动态载入配置文件

  
浏览:2562 发布日期:1970/01/01 分类:3.0.0
增加动态载入配置文件支持,可以在你的项目配置文件中添加LOAD_EXT_CONFIG定义即可。
LOAD_EXT_CONFIG参数支持字符串和数组两种方式,代表不同的用法,一般使用比较多的是采用字符串方式定义,例如:
  1. 'LOAD_EXT_CONFIG'=>'user,db';
复制代码
多个文件用逗号分隔,不需要添加文件后缀。例如,通过上面的定义后,你的项目就会自动加载下面两个配置文件:
用户配置文件 项目目录/Conf/user.php
数据库配置文件 项目目录/Conf/db.php
动态配置文件支持子目录放置,例如下面可以指定加载debug目录下面的配置文件:
  1. 'LOAD_EXT_CONFIG'=>'debug/user,debug/db';
复制代码
通过上面的定义后,你的项目就会自动加载下面两个配置文件:
用户配置文件 项目目录/Conf/debug/user.php
数据库配置文件 项目目录/Conf/debug/db.php
默认情况下,动态加载的配置文件中的设置参数会并入项目配置文件中。也就是默认都是一级配置参数,假如user.php中的配置参数如下:
  1. <?php
  2.     //用户配置文件
  3.     return array(
  4.         'USER_TYPE'      =>2, //用户类型
  5.         'USER_AUTH_ID'   => 10, //用户认证ID
  6.         'USER_AUTH_TYPE' => 2, //用户认证模式
  7.     );
复制代码
那么,最终获取用户参数的方式是:
  1. C('USER_TYPE');
  2. C('USER_AUTH_ID');
  3. C('USER_AUTH_TYPE');
复制代码

注意:无论是在定义的时候还是获取的时候,配置参数都不区分大小写。


但是,这种情况下面如果配置文件较多的话,可能存在冲突的情况,如果希望采用二级配置方式,就需要使用数组方式设置了:
  1. 'LOAD_EXT_CONFIG' => array(
  2.     'USER' => 'user', //用户配置
  3.     'DB'   => 'database', //数据库配置
  4.  ), //加载扩展配置文件
复制代码
同样的user.php 配置文件内容,但最终获取用户参数的方式就变成了:
  1. C('USER.USER_TYPE');
  2. C('USER.USER_AUTH_ID');
  3. C('USER.USER_AUTH_TYPE');
复制代码
这种方式可以避免大项目情况中的参数冲突问题。
注意:这种定义方式下面,二级配置参数是区分大小写的,获取的时候必须和定义的时候保持一致。
原文地址:https://www.cnblogs.com/geniusxjq/p/4139202.html