## 独立配置文件 >[danger] 配置文件支持分离(也称为扩展配置),只需要在公共配置文件配置`extra_config_list`参数(V5.0.1版本已经废除该写法)。 例如,不使用独立配置文件的话,数据库配置信息应该是在`config.php`中配置如下: ~~~ /* 数据库设置 */ 'database' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => false, ], ~~~ 如果需要使用独立配置文件的话,则首先在config.php中添加配置: ~~~ 'extra_config_list' => ['database'], ~~~ 定义之后,数据库配置就可以独立使用`database.php`文件,配置内容如下: ~~~ /* 数据库设置 */ return [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库连接端口 'hostport' => '', // 数据库连接参数 'params' => [], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => '', // 数据库调试模式 'debug' => false, ], ~~~ 如果配置了`extra_config_list`参数,并同时在`config.php`和`database.php`文件中都配置的话,则`database.php`文件的配置会覆盖`config.php`中的设置。 独立配置文件的参数获取都是二维配置方式,例如,要获取`database`独立配置文件的`type`参数,应该是: ~~~ Config::get('database.type'); ~~~ 要获取完整的独立配置文件的参数,则使用: ~~~ Config::get('database'); ~~~ ## 自动读取扩展配置 >[success]#### 版本要求`V5.0.1` `5.0.1`以上版本支持自动读取扩展配置文件(`extra_config_list`配置参数废弃),只需要将扩展配置文件放入`application/extra`目录,即可自动读取。 > 自动读取的配置文件都是二级配置参数,一级配置名称就是扩展配置的文件名。 模块也可以支持自己的扩展配置文件,只需要放入 `application/模块名/extra`下面就可以自动加载。 系统默认加载的独立配置文件不在此列,包括: |文件名|描述| |---|---| |config|应用或者模块配置文件| |database|数据库配置文件| |tags|行为定义文件| |场景名|应用场景配置文件| > 如果你更改了`CONF_PATH`,那么扩展配置文件目录应该是`CONF_PATH/extra`,模块配置目录则变成 `CONF_PATH/module/`,模块的扩展配置目录则变成`CONF_PATH/module/extra`。