«ReflectionException: Конфигурация класса не существует» при обновлении до Laravel 5.7 - PullRequest
0 голосов
/ 31 января 2019

После обновления до Laravel 5.7 я неожиданно испытываю эту ошибку, когда нажимаю на свой тестовый сервер: «ReflectionException: Class config not not».

Я не испытываю этого в своей среде разработки.

Я предпринял шаги, описанные здесь: Laravel Dusk - Конфигурация класса не существует

В моем файле .env нет пробелов - я проходил построчно 4 раза.

Я пока не использую Dusk для чего-либо - (примечание, которое может пригодиться тому, кто спотыкается, как я: сначала я столкнулся с проблемами, когда Dusk говорил мне не использовать Dusk в продуктах.Оказалось, это потому, что мои сценарии развертывания не перемещали мой файл .env - если файл .env не существует, он выдает ту же ошибку.)

Я выполняю:

  • PHP 7.1.26
  • Laravel / Framework 5.7.24
  • Laravel / Dusk 4.0

Composer.json:

    "require": {
        "php": ">=7.1.3",
        "laravel/framework": "5.7.*",
        "fideloper/proxy": "^4.0",
        "cartalyst/sentinel": "2.0.*",
        "guzzlehttp/guzzle": "~6.0",
        "imgix/imgix-php": "^1.1",
        "Jasekz/Laradrop":"1.*",
        "browner12/helpers": "^1.0",
        "mtdowling/jmespath.php":"2.4",
        "davejamesmiller/laravel-breadcrumbs": "5.*",
        "league/flysystem-aws-s3-v3": "~1.0",
        "laravel/passport": "~7.0",
        "laravel/tinker": "~1.0",
        "facebook/webdriver": "^1.6",
        "laravelcollective/html": "^5.7"
    },"require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~7.3",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*",
        "reliese/laravel": "^0.0.13",
        "laravel/dusk": "^4.0",
        "filp/whoops": "~2.0"
    },

I 'мы пробовали composer dump-autoload безрезультатно.Я попытался переключить версии phpunit без удачи.

1 Ответ

0 голосов
/ 31 января 2019

После трех дней ломания моего мозга я понял свою глупую ошибку и подумал, что поделюсь.

Моя ситуация была такой:

  1. Я ранее зафиксировал папку вендора в своем репо, потому что развертывал из репо без шага сборки.
  2. Я сейчаснастроить конвейер развертывания, который компилирует и развертывает мой код, когда я фиксирую определенные ветви.
  3. У меня есть composer update в качестве команды в этом конвейере, поэтому я решил, что пришло время следовать рекомендациям и добавить /vendor в мой файл .gitignore.
  4. Я не удалял папку /vendor из моего репо перед добавлением в мой файл .gitignore.
  5. Это привело к тому, что папка /vendor была заблокирована в моем репо, а не удалена из нее.

Я предпринял все возможные действия, пытаясь выяснить, что происходит.без удачиЯ попытался загрузить версию, которая была на сервере, на мой локальный компьютер, и столкнулся с той же проблемой.


TL; DR:

Наконец, я наткнулся на то, что рекомендовало просто удалить папку /vendor, а затемзапустите composer install, чтобы обновить всю папку поставщика. Это все равно помогло мне.Кажется, что сообщение об ошибке для этой конкретной проблемы не очень руководящее, но это, вероятно, потому, что никто не ожидал, что кто-то будет настолько глуп, чтобы полностью игнорировать рекомендацию «не помещайте папку /vendor в ваше хранилище».Так что, похоже, это связано с несоответствием зависимостей, которое не было разрешено в composer update для моего сценария.

...