Laravel 11创建AdminModule模块时遇服务提供者未找到错误
Laravel 11 中 AdminModule 模块类找不到及 composer dump-autoload 报错解决办法
问题说明
创建AdminModule模块时出现错误:
Class "Modules\AdminModule\Providers\AdminModuleServiceProvider" not found
执行composer dump-autoload时触发报错:
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
解决方案
检查模块目录与文件完整性
确认Modules/AdminModule/Providers/AdminModuleServiceProvider.php文件存在,注意路径大小写(Linux系统严格区分大小写)。同时确保文件内的命名空间与类名正确:namespace Modules\AdminModule\Providers; class AdminModuleServiceProvider extends \Illuminate\Support\ServiceProvider { // ... 类内容 }验证composer自动加载配置
打开项目根目录的composer.json,检查autoload节点是否包含模块的PSR-4映射:"autoload": { "psr-4": { "App\\": "app/", "Modules\\AdminModule\\": "Modules/AdminModule/src/" } }如果模块代码未放在
src目录下,调整路径为实际位置,比如"Modules\\AdminModule\\": "Modules/AdminModule/"。跳过自动事件执行dump-autoload
先禁用post-autoload-dump事件,避免触发报错:composer dump-autoload --no-scripts再手动执行服务提供者发现:
php artisan package:discover --force清除系统缓存
执行以下命令清除各类缓存,确保新的类映射生效:php artisan config:clear php artisan route:clear php artisan clear-compiled修复文件权限
确保模块目录及文件有正确的读写权限,避免PHP无法读取:chmod -R 755 Modules/AdminModule chown -R www-data:www-data Modules/AdminModule # 根据服务器运行用户调整
内容的提问来源于stack exchange,提问作者Mukhila Asokan
相关产品推荐
相关产品推荐

