关于多模块配置下自定义二级配置不生效的问题

浏览:718 发布日期:2019/04/11 分类:技术分享 关键字: 二级配置 自定义配置 多模块配置不生效
问题:在application里面建多个项目,每个项目要有独立的配置文件,然后在/config配置目录下建立对应的配置文件夹, 比如项目叫test, 配置文件里也建个目录/config/test/, 想使用自定义配置文件/config/test/config的时候,发现很多配置项不能够覆盖,这就扯蛋了,如果在公共配置/config/config.php里配置,多模块就可能有问题了。
百度了很多网页,也在官论坛查了资料,没找到我感觉合适的答案,有人说在自定义里配置debug的开启和关闭不生效,只能在主配置里生效,这是个bug,我居然相信了。但是自定义配置有些东西不覆盖主配置还是影响了开发,于是我打开框架源码调试了四五个小时。。。原谅我的笨。

我的解决方法:
1.入口文件有绑定模块名: define('BIND_MODULE','test'); //后台模块绑定
2.找到文件: /Thinkphp/library/App.php
3. 找到 initCommon() 这个方法, 这个地方加个判断 $config = self::init(BIND_MODULE);
if (defined("BIND_MODULE")) {
$config = self::init(BIND_MODULE); //这里传参后二级配置会覆盖一级配置
} else {
$config = self::init();
}

第一次在该论坛发帖,以前有使用过tp3.1 tp3.2, 第一次接触tp5, 如果这个解决方法有问题,欢迎各位大神即时指出,如果有更好的解决方法,也请即时指导, 非常感谢
最佳答案
评论( 相关
后面还有条评论,点击查看>>