Laravel 5 в конфигурации php artisan: сгенерирована сгенерированная ошибка Closure:: __ set_state()

Мой код в работе и я бежал

php artisan config:clear

После этого мой код не был запущен. Страницы указателей и все остальные страницы отображались на белом экране и дали 500 ошибок внутреннего сервера в firebug. Когда я попытался запустить

php artisan

он дал мне ошибку как

PHP Fatal error:  Call to undefined method Closure::__set_state() in /var/www/live/vendor/config.php on line 56

Мой код в производстве! Файл /vendor/config.php не присутствовал раньше, что случилось с этим кодом? Вы столкнулись с такой ошибкой? Я предоставил все разрешения для хранения/папки и поставщика /. Любая помощь/руководство были бы оценены.

Ответ 1

Я столкнулся с подобной проблемой в прошлом, не знаю, что вызвало ее, но теперь вы можете удалить config.php из /vendor, это не нарушит ваш код.

И ваш код начнет работать.

Ответ 2

У меня были похожие проблемы, когда я запустил php artisan config:cache. По-видимому, это проблема, когда приложение пытается загрузить файлы кэшированной конфигурации, в которых есть закрытие. Это не будет исправлено в Laravel, так как плохой практикой является закрытие в файлах конфигурации. См. Этот Github issue

Как я решил это, это отменить это.

Удалите кеш для конфигурации.

Он находится здесь

bootstrap/cache/config.php

ИЛИ

vendor/config.php

Ответ 3

Среди других причин root эта ошибка возникает при вызове php artisan config:cache, когда закрытие определено внутри любого файла конфигурации, который Laravel пытается загрузить. Laravel не позволяет закрывать файлы конфигурации; см:

https://github.com/laravel/framework/issues/9625

Удаление результирующего файла кеша, обычно расположенного в bootstrap/cache/config.php, "исправляет" ошибку.

Долгосрочным решением является устранение замыканий со всех файлов конфигурации. Проблемный файл конфигурации можно определить, проверив строку нарушения, как указано в сообщении об ошибке.

Если нарушающий файл является сторонним, лучше всего открыть проблему с библиотекой, чтобы проблема была исправлена ​​вверх по течению.

Ответ 4

Вот что я сделал, чтобы решить это:

  1. Перейдите в /vendor/tymon/jwt-auth/src/config/config.php и замените строки для storage и auth на:

'auth' => 'Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter',
'storage' => 'Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter'

  1. Перейдите в /bootstrap/cache/config.php и удалите его
  2. Выполните следующие команды по порядку:
    А) php artisan config/cache
    Б) php artisan jwt:generate
    C) php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

и это должно сделать это!

Ответ 5

решено с помощью

composer update

composer install

Ответ 6

Изменение файла config.php внутри vendor/tymon/jwt-auth/src/config на

'auth' => Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter::class` 

и этот

'storage' => Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter::class` 

до запуска php artisan config:cache работал у меня.