一、配置形式:
惯例配置:thinkphp/convention.php(一般不更改)
应用配置:app/config.php
扩展配置:app/database.php app/extra/用户自定义配置文件
场景配置:①app/config.php(‘app_status’=>'')②在application下新建对应的php文件③配置属性return[]
模块配置:在模块文件夹下新建config并写入return配置
动态配置:①系统方法:config(‘属性’,‘属性值’);
②系统类:Config::set(‘属性’,‘属性值’);
二、配置格式:
数组格式:
//项目配置文件
return [
// 默认模块名
'default_module' => 'index',
// 默认控制器名
'default_controller' => 'Index',
// 默认操作名
'default_action' => 'index',
//更多配置参数
//...
];
其他配置格式:
1)默认方式为PHP数组方式定义配置文件,你可以在入口文件定义CONF_EXT常量来更改为其它的配置类型:
// 更改配置格式为ini格式
define('CONF_EXT', '.ini');
2)配置文件
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::set([]);
Config::get([]);
四、配置加载:
惯例配置->应用配置->扩展配置->场景配置->模块配置->动态配置
五、优先级:
动态配置-> 模块配置->场景配置->扩展配置->应用配置->惯例配置
六、实现原理:
$data1=array('name'=>'惯例','a'=>'a');
$data2=array('name'=>'应用','b'=>'b');
dump_merge($data1,$data2);
#输出结果是后面加载的配置把前面加载匹配的同名覆盖
七、环境变量配置(不支持中文)
环境变量中设置的app_debug和app_trace参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。