🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
ThinkPHP支持多种格式的配置格式,但最终都是解析为PHP数组的方式。 ## PHP数组定义 返回**PHP数组**的方式是默认的配置定义格式,例如: ~~~ //项目配置文件 return [ // 默认模块名 'default_module' => 'index', // 默认控制器名 'default_controller' => 'Index', // 默认操作名 'default_action' => 'index', //更多配置参数 //... ]; ~~~ 配置参数名不区分大小写(因为无论大小写定义都会转换成小写),新版的建议是使用小写定义配置参数的规范。 还可以在配置文件中可以使用二维数组来配置更多的信息,例如: ~~~ //项目配置文件 return [ 'cache' => [ 'type' => 'File', 'path' => CACHE_PATH, 'prefix' => '', 'expire' => 0, ], ]; ~~~ ## 其他配置格式支持 默认方式为PHP数组方式定义配置文件,你可以在入口文件定义`CONF_EXT`常量来更改为其它的配置类型: ~~~ // 更改配置格式为ini格式 define('CONF_EXT', '.ini'); ~~~ 配置后,会自动解析支持的配置类型,包括` .ini`、`.xml`、`.json` 和 `.php` 在内的格式支持。 >[danger] 5.0.2版本开始支持yaml配置格式支持 **ini格式**配置示例: ~~~ default_module=Index ;默认模块 default_controller=index ;默认控制器 default_action=index ;默认操作 ~~~ **xml格式**配置示例: ~~~ <config> <default_module>Index</default_module> <default_controller>index</default_controller> <default_action>index</default_action> </config> ~~~ **json格式**配置示例: ~~~ { "default_module":"Index", "default_controller":"index", "default_action":"index" } ~~~ ## 二级配置 配置参数支持二级,例如,下面是一个二级配置的设置和读取示例: ~~~ $config = [ 'user' => [ 'type' => 1, 'name' => 'thinkphp', ], 'db' => [ 'type' => 'mysql', 'user' => 'root', 'password' => '', ], ]; // 设置配置参数 Config::set($config); // 读取二级配置参数 echo Config::get('user.type'); // 或者使用助手函数 echo config('user.type'); ~~~ 系统不支持二级以上的配置参数读取,需要手动分步骤读取。 有作用域的情况下,仍然支持二级配置的操作。 如果采用其他格式的配置文件的话,二级配置定义方式如下(以ini和xml为例): ~~~ [user] type=1 name=thinkphp [db] type=mysql user=rot password='' ~~~ 标准的xml格式文件定义: ~~~ <config> <user> <type>1</type> <name>thinkphp</name> </user> <db> <type>mysql</type> <user>root</user> <password></password> </db> </config> ~~~ set方法也支持二级配置,例如: ~~~ Config::set([ 'type' => 'file', 'prefix' => 'think' ],'cache'); ~~~