独立配置文件

配置文件支持分离(也称为扩展配置),只需要在公共配置文件配置extra_config_list参数(V5.0版本已经废除该写法)。

例如,不使用独立配置文件的话,数据库配置信息应该是在config.php中配置如下:

  1. /* 数据库设置 */
  2. 'database' => [
  3. // 数据库类型
  4. 'type' => 'mysql',
  5. // 服务器地址
  6. 'hostname' => '127.0.0.1',
  7. // 数据库名
  8. 'database' => 'ThinkPHP',
  9. // 数据库用户名
  10. 'username' => 'root',
  11. // 数据库密码
  12. 'password' => '',
  13. // 数据库连接端口
  14. 'hostport' => '',
  15. // 数据库连接参数
  16. 'params' => [],
  17. // 数据库编码默认采用utf8
  18. 'charset' => 'utf8',
  19. // 数据库表前缀
  20. 'prefix' => '',
  21. // 数据库调试模式
  22. 'debug' => false,
  23. ],

如果需要使用独立配置文件的话,则首先在config.php中添加配置:

  1. 'extra_config_list' => ['database'],

定义之后,数据库配置就可以独立使用database.php文件,配置内容如下:

  1. /* 数据库设置 */
  2. return [
  3. // 数据库类型
  4. 'type' => 'mysql',
  5. // 服务器地址
  6. 'hostname' => '127.0.0.1',
  7. // 数据库名
  8. 'database' => 'ThinkPHP',
  9. // 数据库用户名
  10. 'username' => 'root',
  11. // 数据库密码
  12. 'password' => '',
  13. // 数据库连接端口
  14. 'hostport' => '',
  15. // 数据库连接参数
  16. 'params' => [],
  17. // 数据库编码默认采用utf8
  18. 'charset' => 'utf8',
  19. // 数据库表前缀
  20. 'prefix' => '',
  21. // 数据库调试模式
  22. 'debug' => false,
  23. ],

如果配置了extra_config_list参数,并同时在config.phpdatabase.php文件中都配置的话,则database.php文件的配置会覆盖config.php中的设置。

独立配置文件的参数获取都是二维配置方式,例如,要获取database独立配置文件的type参数,应该是:

  1. Config::get('database.type');

要获取完整的独立配置文件的参数,则使用:

  1. Config::get('database');

自动读取扩展配置

#### 版本要求V5.0

5.0以上版本支持自动读取扩展配置文件(extra_config_list配置参数废弃),只需要将扩展配置文件放入application/extra目录,即可自动读取。

自动读取的配置文件都是二级配置参数,一级配置名称就是扩展配置的文件名。

模块也可以支持自己的扩展配置文件,只需要放入 application/模块名/extra下面就可以自动加载。

系统默认加载的独立配置文件不在此列,包括:

文件名描述
config应用或者模块配置文件
database数据库配置文件
tags行为定义文件
场景名应用场景配置文件
如果你更改了CONF_PATH,那么扩展配置文件目录应该是CONF_PATH/extra,模块配置目录则变成 CONF_PATH/module/,模块的扩展配置目录则变成CONF_PATH/module/extra