配置格式
最后更新于:2022-04-01 21:18:25
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格式**配置示例:
~~~
Index
index
index
~~~
**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格式文件定义:
~~~
1
thinkphp
mysql
root
~~~
set方法也支持二级配置,例如:
~~~
Config::set([
'type' => 'file',
'prefix' => 'think'
],'cache');
~~~
';