laravel-spark-google2fa Provider class 在 Spark 更新到 v9.0 后找不到

laravel-spark-google2fa Provider class not found after Spark update to v9.0

我最近更新了一个 Laravel/Spark web application to the latest version of Spark (v9.*) via composer. Another package I use is Laravel-Spark-Google2FA,我也从 v1.* 更新到 v2.*

设置:

laravel-spark-google2fa 包有一个 Laravel 服务提供者 class 位于 /project-root/laravel/spark/src/Providers/Google2FAServiceProvider.php

在 Laravel 中,我们在 /project-root/laravel/config/app.php 中使用 providers 数组中的以下行指定此内容:

Laravel\Spark\Providers\Google2FAServiceProvider::class,

composer.json 中我们有:

"require": {
      ...
    "doctrine/dbal": "^2.5",
    "laravel/framework": "^6.0.0",
    "eusebiu/laravel-spark-google2fa": "^2.0.0",
    "laravel/cashier": "^10.0.0",
    "laravel/spark-aurelius": "^9.0.0",
    "laravel/tinker": "^1.0.0",
    "laravelcollective/html": "^6.0.0",
    "webpatser/laravel-uuid": "2.*"
},
"autoload": {
      ...
    "psr-4": {
        "App\": "app/"
    }
},
...

注意:除了您在上方 require 部分中看到的更高版本号外,此设置已在 Web 应用程序 运行 期间成功设置了很长时间。

错误:

自从我们将 laravel/spark 升级到 laravel/spark-aurelius: ^9.0.0 后,我们 运行 出现了一个错误,该错误阻止了应用程序 运行ning:

In ProviderRepository.php line 208:

  Class 'Laravel\Spark\Providers\Google2FAServiceProvider' not found  

尝试失败

我们尝试了以下方法来解决这个问题,none 成功了:

在上述所有情况下,错误仍然存​​在,阻止应用程序 运行ning。

laravel-spark-google2fa 包最近可能被放弃了。我在那里打开了一个问题,但没有听到回复。 Laravel/Spark 支持还没有提出解决方案。所以我在这里发布作为摆脱这个包和重构我的代码以使用不同的代码之前的最后手段。

我不知道 bootstrap 缓存。 bootstrap 缓存文件包含对 Google2FAServiceProvider 服务提供商 class 的引用,该引用在各种包更新后不再存在。

运行 命令如 php artisan config:clearphp artisan cache:clearcomposer dump-autoload 没有清除此缓存。最后,我简单地删除了有问题的文件:

文件名:services.php

位置:/laravel/bootstrap/cache/services.php

config.php,在同一位置,也可以包含这样的引用。

注意:我使用 VSCode 中的查找功能来查找对这个服务提供商的引用,但没有找到这个,因为 bootstrap 缓存被 gitignored。