laravel-spark-google2fa Класс провайдера не найден после обновления Spark до v9.0 - PullRequest
0 голосов
/ 01 октября 2019

Я недавно обновил веб-приложение Laravel / Spark до последней версии Spark (v 9.*) через composer. Другой пакет, который я использую, это Laravel-Spark-Google2FA , который я также обновил с v 1.* до v 2.*.

Настройка:

В пакете laravel-spark-google2fa есть класс поставщика услуг Laravel, который находится в /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, уже долгое время были настроены, и веб-приложение успешно работало в течение этого времени.

Ошибка:

Поскольку мы обновили laravel/spark до laravel/spark-aurelius: ^9.0.0, мы столкнулись с одной ошибкой, которая препятствует запуску приложения:

In ProviderRepository.php line 208:

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

Неудачные попытки

Мы попробовали следующее, чтобы исправить это, ни один из которых не работал:

  • работает php artisan config:clear
  • работает php artisan cache:clear
  • работает composer dump-autoload
  • в соответствии с документами laravel-spark-google2fa, в которых запускается php artisan vendor:publish --provider="Eusebiu\LaravelSparkGoogle2FA\Google2FAServiceProvider" --force
  • , изменяя способ указания поставщика услуг в app.php
  • addeновый путь к autoload в composer.json
  • понижении laravel-spark-google2fa до более ранней версии
  • удаление и повторная установка laravel-spark-google2fa
  • работает spark-installer болеесуществующее приложение

Во всех вышеперечисленных случаях сохраняется ошибка, препятствующая запуску приложения.

Пакет laravel-spark-google2fa может быть недавно закрыт. Я открыл там вопрос и не услышал ответ. Поддержка Laravel / Spark не предлагает решения. Поэтому я публикую здесь в качестве крайней меры, прежде чем избавиться от этого пакета и реорганизовать мой код для использования другого.

1 Ответ

0 голосов
/ 18 октября 2019

Я не знал о загрузочном кэше. Кэш-файл начальной загрузки содержал ссылку на класс поставщика услуг Google2FAServiceProvider, который после различных обновлений пакетов и того, что больше не присутствовало.

При выполнении таких команд, как php artisan config:clear, php artisan cache:clear и composer dump-autoload, этот кэш не очищался. В конце концов, я просто удалил файл-нарушитель:

имя файла: services.php

местоположение: /laravel/bootstrap/cache/services.php

config.php, в том же месте, также можетсодержат такие ссылки.

Примечание. Я использовал функцию поиска в VSCode для поиска ссылок на этого поставщика услуг, но он не нашел его, потому что кэш начальной загрузки является gitignored.

...