database.php文件配置项优先于config.php
conf\extra为默认扩展目录,里面新建文件会添加到配置项里面,其文件名为配置项,返回内容当作配置项值。
扩展配置会替换掉应用配置
扩展
一、 应用配置
1、可在入口文件 /public/index.php中定义配置文件目录
// 定义配置文件目录
define('CONF_PATH',__DIR__. '/../conf/');
2、在根目录下创建conf(目录名称无限制)目录
3、在此目录下 创建config.php(文件名默认)
4、可在conf目录下创建extra目录此目录为自动加载扩展目录,在extra目录中创建的文件名,会自动加载到config数组中,文件名为数组的属性key。
5、场景配置:可在config中定义app_status属性 如'app_status' => 'office', office 为conf目录下的文件
二、模块扩展
1、在conf目录下创建和模块名相同的目录名 如index目录对应index模块
2、在index目录下创建config.php(默认文件名)可在index目录下创建extra目录,此目录为index模块的扩展目录
拓展配置优先级高于应用配置
扩展配置的替代机制
扩展配置会替换掉应用配置
extra->扩展配置
config.php->应用配置
database.php->数据库的默认配置
extra里面的database为扩展配置可以替换掉数据库的默认配置convention下的database
database.php可以跟extra同级目录,而且可以替换掉应用配置config.php里面的database
优先级:扩展配置>应用配置>默认配置
拓展配置extra目录在conf目录下,会覆盖应用配置
4:00开始看
extra->扩展配置
config.php->应用配置
database.php->数据库的默认配置
extra里面的database为扩展配置可以替换掉数据库的默认配置convention下的database
database.php可以跟extra同级目录,而且可以替换掉应用配置config.php里面的database
优先级:扩展配置>应用配置>默认配置
在conf/目录下新建一个扩展目录:extra/,必须要这个名字才会生效
再新建文件 extra/email.php,代码如下:
<?php return [ 'host'=>'smtp.qq.com', 'name'=>'35595@qq.com' ];
在配置项的扩展目录下的文件TP会默认把文件明当成配置项的一个key
如:
如果项目不是特别大,建议还是使用默认配置文件,不需要再多去建扩展配置项
在扩展目录中也可以把数据库配置放入一个新建文件中,比如:extra/database.php 或是把这个文件直接放在conf目录下也是可以的,比如:conf/database.php
扩展配置
1.为什么要扩展配置:在开发中,配置项会很多,例如缓存配置、session,cookie配置等,如果这些配置都放在config.php文件中,不利于维护和管理;那么我们可以拆分为多个配置,所以就有了扩展配置,
另外,扩展配置也方便配置惯例参数中参数为数组类型的参数的配置
2.如何实现扩展配置
a.在conf目录下建立extra目录(默认为扩展配置的目录,所以文件夹名必须为extra)
b.惯例配置的参数一般为数组类型,如果想通过扩展配置来修改惯例配置的话,那么在extra目录下新建的文件名必须和惯例配置里的要配置的那个数组参数同名;
c.database.php数据库配置可以放在extra目录进行配置,也可以放在conf目录下,但是database.php属于扩展配置,优先级大于conf目录下的config.php(database.php是个特殊)
d.注意配置参数生效的优先级最高的是extra目录下的配置参数,即使之前配置了同名参数(参数可能在config.php中已配置),会覆盖之前的配置
优先级:扩展配置>应用配置>惯例配置(一级一级向上array_merge())
扩展配置在 conf/extra/配置文件名.php database.php属于扩展配置,可以放在conf文件夹下
应用配置在 conf/config.php
惯例配置在 thinkphp/convention.php
array_meger($conf1, $conf2) 相同则合并,不同则共存
扩展配置 会替换掉 默认配置
创建扩展配置时以配置文件名作为配置数组的键,以值作为数组的值
应用配置目录必须要在 public目录下 index.php文件中进行设置
扩展配置目录 名必须为 extra,可在已经设置好的应用配置目录下设置,extra目录下的文件名可自定义,符合tp5定义规则即可
在与app同级目录下有一个conf文件夹,
conf—config.php文件保存的是应用配置,config.php中返回的是一个配置数组,该数组会与tp的惯例配置数组进行array_merge(惯例配置指的是thinkphp文件夹下的convention文件中保存的所有配置)
conf—extra文件夹,该文件夹下保存的PHP文件是扩展配置,配置之间的修改都是通过array_merge来实现的
优先级为扩展配置>应用配置>惯例配置
// 定义配置文件目录
define('CONF_PATH', __DIR__ . '/../app/conf/');