首页 > 解决方案 > 找不到类“ServiceProvider”,无法自动加载服务提供者

问题描述

我正在尝试学习 laravel 包开发我已经按照一些教程编写了 laravel 包,但无法在我的应用程序中注册它的服务提供者。我已经将我的包上传到 github。这是我的回购https://github.com/zohaibhassan156/laravel-paysimple

在我的主 composer.json 中添加这个

"psr-4": {
  "App\\": "app/",
  "ZohaibHassan156\\LaravelPaySimple\\": "zohaibhassan156/laravel-paysimple/src/"
}

这在我的 config/app/php

    \ZohaibHassan156\LaravelPaySimple\PaySimpleServiceProvider::class,

标签: phplaravelcomposer-php

解决方案


包中的自动加载器目录相对于包含composer.json文件的目录 - 因此您无需将包目录指定为自动加载路径的一部分。

此外,如果这是一个包,您不想指定 App 命名空间,这可能会导致与使用该包的应用发生冲突。

因此,您的包中的 PSR-4 设置只需:

"psr-4": {
  "ZohaibHassan156\\LaravelPaySimple\\": "src/"
}

推荐阅读