在Lumen中是否必须复制vendor目录下第三方包的配置文件?
关于Lumen第三方包配置是否需要复制到项目config目录的解答
结论:不需要强制复制
你目前未复制配置文件仍能正常使用是正常现象,Laravel/Lumen生态的第三方扩展包通常会在自身的服务提供者中注册自带的默认配置,因此包的默认配置会被框架自动加载,不需要额外操作就能直接使用。
不复制配置文件可能存在的后续风险
- 无法自定义配置:如果后续需要调整包的默认配置,你不能直接修改
vendor/friskals/countries/config/country下的文件,vendor目录的内容会在每次执行composer install/composer update时被覆盖,所有修改都会丢失。只有将配置文件复制到项目根目录的config文件夹下,你自定义的配置值才会优先于包的默认配置生效,且不会被composer操作覆盖。 - 配置维护性差:项目所有自定义配置统一存放在根目录
config文件夹是Lumen的约定规范,配置不统一归档会提升后续项目维护的排查成本,其他开发者或者你间隔较长时间后再维护项目时,很难快速找到相关配置的修改入口。 - 升级兼容性风险:如果后续你升级该第三方包,官方如果修改了默认配置的取值,你没有在项目侧锁定配置的情况下,升级后可能出现功能异常,且难以快速定位到是配置默认值变动导致的问题。
建议操作
如果当前包的默认配置完全符合你的业务需求,可以暂时不复制;如果后续有自定义配置的需求,直接将包的country.php配置文件复制到项目根目录的config文件夹下,再修改对应值即可。
内容的提问来源于stack exchange,提问作者Friska Sianturi
相关产品推荐
相关产品推荐

