"ReflectionException: Конфигурация класса не существует" при обновлении до Laravel 5.7

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

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

Я предпринял шаги, изложенные здесь: 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"
    },

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

1 ответ

Решение

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

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

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

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


TL; DR:

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

У меня такая же проблема. просто удалил файлы в bootstrap/cache/ и проблема решена.

cd bootstrap/cache/
rm -rf *.php
Другие вопросы по тегам