top-think/think

tp 6.0.13,应用config无法覆盖全局config

v2jun opened this issue · 3 comments

v2jun commented

目前版本:6.0.13LTS
问题:开启多应用模式后,按官方示例在应用下建立config目录,并往config目录从新建相关配置,但是实测下来,session,cache都无法覆盖全局配置,虽然应用下config里配置了相关设置,但是实际生效依旧为全局config。另外,在文档中说cache在开启多应用模式的情况下,默认是会区分应用的,但是实测下来跨应用读取cache依旧可行,并未区分隔离。
我在文档配置页看到评论区有人在1年前就提过这个问题,但是官方没有回复,到目前似乎也没有修复。

另:如果是我哪个地方操作有问题,也请回答说明一下,谢谢

官方示例:
Junef1663060970
项目实例:
Junef1663061139

v2jun commented

目前经过实测,问题出在config配置的加载上。
session,如果在app下的middleware直接初始化,那应用里的config就无法覆盖全局config;相反,将session的初始化放在应用目录下的middleware里初始化即可。简单总结就是在config合并前,session就已初始化,所以无法覆盖。
cache,同理,在加载合并应用下config前,cache即已初始化,在event里尝试移除cache驱动,重新加载可变相解决问题。

目前经过实测,问题出在config配置的加载上。 session,如果在app下的middleware直接初始化,那应用里的config就无法覆盖全局config;相反,将session的初始化放在应用目录下的middleware里初始化即可。简单总结就是在config合并前,session就已初始化,所以无法覆盖。 cache,同理,在加载合并应用下config前,cache即已初始化,在event里尝试移除cache驱动,重新加载可变相解决问题。

确实是这样的,但是有些扩展需要最先加载,比如trace扩展,就必须使用全局配置····