"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 ответ
После трех дней работы над мозгом я понял свою глупую ошибку и решил поделиться.
Моя ситуация была такая:
- Ранее я отправлял папку вендора в мое хранилище, потому что развертывал из моего хранилища без шага сборки.
- Теперь у меня есть настроенный конвейер развертывания, который компилирует и развертывает мой код, когда я фиксирую определенные ветви.
- я имею
composer update
как команда в рамках этого конвейера, поэтому решил, что пришло время следовать передовым практикам и добавить/vendor
к моему.gitignore
файл. - Я не удалил
/vendor
папку из моего репо, прежде чем добавить его в мой.gitignore
файл. - Это привело к
/vendor
папка заблокирована в моем репо, а не удалена из него.
Я предпринял все возможные действия, пытаясь понять, что происходит без удачи. Я попытался загрузить версию, которая была на сервере, на мой локальный компьютер, и столкнулся с той же проблемой.
TL; DR:
Наконец, я наткнулся на то, что рекомендуется просто удалить /vendor
папку, а затем запустить composer install
обновить всю папку продавца. В любом случае, это помогло мне. Кажется, что сообщение об ошибке для этой конкретной проблемы не очень руководящее, но это, вероятно, потому, что никто не ожидал, что кто-то будет настолько глуп, чтобы полностью игнорировать руководство "не совершайте /vendor
папку в репозиторий ". Так что, похоже, это происходит из-за несоответствия зависимостей, которое не было решено на composer update
по моему сценарию.
У меня такая же проблема. просто удалил файлы в
bootstrap/cache/
и проблема решена.
cd bootstrap/cache/
rm -rf *.php