TP5 中配置文件
1.默认配置目录:
application 目录下有config.php(默认配置)文件,application 目录模块下可以添加对当前模块的config.php配置文件
convention.php 为框架惯例文件,默认配置文件如未修改,则和thinkphp目录下的convention.php文件一样。
在默认模块默认控制器默认方法内 dump(\think\Config::get()); 可打印出所有配置项,修改config文件可动态变更配置项
2.自定义配置目录:
在入口文件中添加CONF_PATH常量之后,创建对应目录即可
自定义配置目录修改框架入口文件(\public\index.php),定义自定义配置的目录,并按照定义目录添加相应配置文件,使用return 返回数组的方式修改添加配置项,如和config目录平级的config文件为应用级配置文件,在config目录下创建相应模块目录,再添加config文件,则此config文件和应用中相应的模块进行绑定
3.扩展配置目录:
在2中创建的config目录下创建extra目录,创建自定义配置文件,使用数组设置配置项,此时\think\Config::get() 返回配置项增加,相关配置项名为自定义配置文件名,内容为数组内配置内容
在模块目录下添加extra目录,增加自定义php文件,文件内return数组作为配置项,此时返回配置项增加,增加配置项名为自定义php文件名,基本同上
TP5配置目录主要分为以上三类:默认配置目录,自定义配置目录和扩展配置目录,三种配置目录方式输出配置项均会与应用配置文件合并后输出
相应模块下创建extra目录,使用数组方式返回配置项,配置项名称为相应文件名称,
自定义配置文件格式:
TP5支持四种配置文件格式(扩展名):
默认模式即为数组键值对,在相应config文件内设置即可
其余三项均需要在入口文件定义配置文件后缀 常量 CONF_EXT 配置为相应后缀即可,相应配置文件名均为config(.ini/.xml/.json)
ini名值对配置文件 不需要分隔符 相关备注前加;
xml标签对配置文件 根节点标签名称不影响配置项
json对象属性名值对配置文件 使用json对象方式设置配置项
实际工作中用的最多的是数组,其它格式,了解即可。所有格式的配置文件,最终返回的的都是Array数组键值对。
使用场景:在不同的环境下使用不同的配置项,比如为不同数据库环境创建不同的数据库连接配置
实现步骤:1.修改应用或模块排至文件中的‘app_status’,将值设置为场景名称,如:home
2.在与改配置文同级的目录下,创建与场景名称同名的配置文件,如home.php
3.再次执行,会自动根据场景配置文件(home.php)更新当前应用的配置文件
简单来说就是在相应配置文件内配置app_status配置, 在相应文件目录下添加相应文件名称php文件,文件内进行个性化配置
场景配置,可以看到文件级的动态配置,提供了一种在特殊环境下简便的解决方案。
模块配置:
一、模块可以有自己的配置文件,独立配置文件和场景配置文件;
二、模块配置的优先级高于应用配置,相同配置项会覆盖掉应用中的配置项;
三、模块默认配置文件名是:config.php;
四、模块默认独立配置文件有两个:database.php,valida te.php;
五、模块场景配置文件名,根据‘app_status’参数值确定。
降低应用复杂度,提高应用安全性,模块配置用的并不多,但如果有个性化需求时,使用模块设置会方便许多
其他位置的配置文件
使用php文件配置,需要在控制器方法内加载相应的文件即可。