Composer 下载包并放入 vendor map 但服务提供商无法识别它 laravel 6

Composer downloads the package and put in the vendor map but the service provider doesn't recognize it laravel 6

我从 git 派生了一个 api 处理程序,我需要将其更新为 laravel 6 (api handler that i forked what is not laravel 6 compatible) 兼容,但我不断收到作曲家错误

所以当我 运行 composer update 它从 git 安装包并将它正确地放在 vendor 文件夹中。什么工作正常然后我将 class 添加到 config/app.php 像这样

'providers'       => [
    Name\ApiHandler\ApiHandlerServiceProvider::class,
],

什么会在 laravel

中引发此错误
In ProviderRepository.php line 208:
Class 'Name\ApiHandler\ApiHandlerServiceProvider' not found

到目前为止我已经尝试过:

  1. composer clear-cache
  2. rm -rf .cache/composer/*
  3. 清除 bootstrap 作曲家
  4. 删除composer.lock
  5. 删除 vendor

然后 composer update 但它一直在抛出错误。但是当我在我的编辑器中并转到 config/app.php 并在按住 ctrl 的同时单击 Name\ApiHandler\ApiHandlerServiceProvider::class, 它会找到 class 并转到供应商map 所以我的想法表明 class 已正确导入

这就是 laravel 项目的 composer.json 外观

"repositories": [
{
  "type":"package",
  "package": {
    "name": "name/laravel-api-handler",
    "version":"dev-laravel-6",
    "source": {
      "url": "https://github.com/name/laravel-api-handler",
      "type": "git",
      "reference":"branch name"
    }
  }
}
],
"require": {
  "name/laravel-api-handler": "dev-laravel-6",
},

api 处理程序 composer.json

 "autoload": {
    "psr-4": {
        "name\ApiHandler\": "src"
    }
},
"extra": {
    "laravel": {
        "providers": [
            "name\ApiHandler\ApiHandlerServiceProvider"
        ]
    }
},

地图结构是vendor/name/laravel-api-handler/src

当 运行ning Composer updateComposer install

时,自定义包也不会出现在 Discovered Package

我是不是漏掉了什么,因为我不知道出了什么问题

要解决它,

  • 删除 bootstrap/cache/config.php 文件。然后再运行。
  • 运行 下面一一命令

    composer dump-autoload
    
    php update
    

将 ApiHandler 门面导入您的 类:-

use ApiHandler\Facades\ApiHandlerServiceProvider;

置顶

尝试 remove/rename 您的供应商文件夹。然后做composer install。那么请再次检查。如果这不起作用,请执行 composer update。不确定引擎盖下发生了什么,但 composer update 在我的案例中成功了。

因此,在研究将自定义包编辑到您的项目后,显然作曲家不会自动加载 "type":"package" 文档中任何地方都没有提到的内容。 link where it get explained