如何修改nwidart/laravel-modules默认模块目录至app/Modules
nwidart/laravel-modules 配置模块存放目录为 app/Modules 实现步骤
按以下顺序操作即可完成配置:
- 第一步:发布扩展配置
未发布过配置的情况下,在项目根目录执行artisan命令:php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"
执行后会在config目录生成modules.php配置文件。 - 第二步:修改核心配置项
打开config/modules.php,找到paths配置数组,调整两个参数:modules:默认值为base_path('Modules'),修改为app_path('Modules'),指定模块实际存放目录modules_namespace:默认值为Modules,修改为App\Modules,匹配新目录对应的根命名空间
配置中路由、迁移、视图、模型等子目录默认基于主模块路径拼接,无需单独调整,会自动适配新目录。
- 第三步:更新自动加载规则
打开根目录composer.json,找到autoload.psr-4配置段,删除原有根目录模块的映射规则"Modules\\": "Modules/"(存在则删)。
Laravel默认已将app目录映射到App根命名空间,无需新增app/Modules的映射规则,直接执行命令重载自动加载文件:composer dump-autoload - 第四步:迁移存量模块(无已创建模块可跳过)
将根目录下原Modules文件夹整体移动到app目录下,批量替换模块内所有PHP文件的命名空间前缀,将Modules\替换为App\Modules\,避免类找不到的错误。 - 第五步:验证配置
执行php artisan module:list,确认存量模块可正常识别;再执行php artisan module:make TestDemo创建测试模块,若模块生成在app/Modules/TestDemo路径下,即配置生效。
内容的提问来源于stack exchange,提问作者Iam Loki
相关产品推荐
相关产品推荐

