Laravel-AdminLTE预加载器移除方案及vendor目录配置文件相关疑问
Laravel-AdminLTE预加载器移除方案及vendor目录配置文件相关疑问
嗨,我来给你梳理一下这个问题的解决方案和背后的原因,你遇到的情况其实是Laravel包开发里很常见的场景~
一、不用改vendor目录,轻松禁用预加载器的方法
你完全不需要去动vendor里的配置文件,Laravel的包设计早就考虑到了这个问题,只需要把包的配置文件发布到你自己的项目目录里就行,步骤很简单:
- 打开终端,在你的Laravel项目根目录下运行这条Artisan命令:
这条命令会把php artisan vendor:publish --tag=adminlte-configvendor/jeroennoten/laravel-adminlte/config/adminlte.php复制到你项目的config/目录下,生成一个属于你自己的adminlte.php配置文件。 - 打开项目里的
config/adminlte.php,找到关于预加载器的配置项(就是你在vendor里看到的那个布尔开关),把它改成false就可以禁用顶部的预加载条了。
比如你提到的配置片段里的预加载器相关部分,找到类似控制预加载器启用的布尔配置项,将其值从true改为false即可。
这样修改后,就算以后执行composer update更新依赖,你的配置也不会被覆盖,因为项目config目录下的文件是属于你项目的,不会被composer的更新操作影响。
二、为什么vendor目录里会有配置文件?
其实这个是Laravel包的标准设计方式:
- 包的开发者会把默认配置放在自己的vendor目录下,作为包的“默认行为”配置,这样当用户第一次安装包的时候,不用做任何配置就能直接用包的默认功能。
- Laravel的服务提供者在加载配置时,会优先读取你项目
config/目录下的对应配置文件,如果找不到,才会去vendor里加载包的默认配置。这样既保证了包的开箱即用,又给了用户自定义配置的空间,不会因为composer更新而丢失自定义设置。
简单说,vendor里的配置是“默认模板”,你发布到项目config里的是“自定义副本”,后者优先级更高,而且完全受你自己控制。
备注:内容来源于stack exchange,提问作者Asnard
相关产品推荐
相关产品推荐

