ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。

PHP数组定义

返回PHP数组的方式是默认的配置定义格式,例如:

  1. //项目配置文件
  2. return [
  3. // 默认模块名
  4. 'default_module' => 'index',
  5. // 默认控制器名
  6. 'default_controller' => 'Index',
  7. // 默认操作名
  8. 'default_action' => 'index',
  9. //更多配置参数
  10. //...
  11. ];

配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。

还可以在配置文件中可以使用二维数组来配置更多的信息,例如:

  1. //项目配置文件
  2. return [
  3. 'cache' => [
  4. 'type' => 'File',
  5. 'path' => CACHE_PATH,
  6. 'prefix' => '',
  7. 'expire' => 0,
  8. ],
  9. ];

其他配置格式支持

默认方式为PHP数组方式定义配置文件,你可以在入口文件定义CONF_EXT常量来更改为其它的配置类型:

  1. // 更改配置格式为ini格式
  2. define('CONF_EXT', '.ini');

配置后,会自动解析支持的配置类型,包括.ini.xml.json.php 在内的格式支持。

5.0版本开始支持yaml配置格式支持

ini格式配置示例:

  1. default_module=Index ;默认模块
  2. default_controller=index ;默认控制器
  3. default_action=index ;默认操作

xml格式配置示例:

  1. <config>
  2. <default_module>Index</default_module>
  3. <default_controller>index</default_controller>
  4. <default_action>index</default_action>
  5. </config>

json格式配置示例:

  1. {
  2. "default_module":"Index",
  3. "default_controller":"index",
  4. "default_action":"index"
  5. }

二级配置

配置参数支持二级,例如,下面是一个二级配置的设置和读取示例:

  1. $config = [
  2. 'user' => [
  3. 'type' => 1,
  4. 'name' => 'ThinkPHP',
  5. ],
  6. 'db' => [
  7. 'type' => 'mysql',
  8. 'user' => 'root',
  9. 'password' => '',
  10. ],
  11. ];
  12. // 设置配置参数
  13. Config::set($config);
  14. // 读取二级配置参数
  15. echo Config::get('user.type');
  16. // 或者使用助手函数
  17. echo config('user.type');

系统不支持二级以上的配置参数读取,需要手动分步骤读取。有作用域的情况下,仍然支持二级配置的操作。

如果采用其他格式的配置文件的话,二级配置定义方式如下(以ini和xml为例):

  1. [user]
  2. type=1
  3. name=ThinkPHP
  4. [db]
  5. type=mysql
  6. user=rot
  7. password=''

标准的xml格式文件定义:

  1. <config>
  2. <user>
  3. <type>1</type>
  4. <name>ThinkPHP</name>
  5. </user>
  6. <db>
  7. <type>mysql</type>
  8. <user>root</user>
  9. <password></password>
  10. </db>
  11. </config>

set方法也支持二级配置,例如:

  1. Config::set([
  2. 'type' => 'file',
  3. 'prefix' => 'think'
  4. ],'cache');