Ich habe ein Paket eines Drittanbieters, das eine Schließung in seiner Konfiguration verwendet (Dingo/API), die mich leider daran hindert, den Befehl config:cache
zu verwenden, da dies die gesamte Anwendung ohne freundliche Fehlermeldung oder Möglichkeit zur Wiederherstellung zum Absturz bringt außer dem manuellen Löschen des Konfigurationscaches:
PHP Fatal error: Call to undefined method Closure::__set_state() in /Users/anahkiasen/config-closures/bootstrap/cache/config.php on line 22
PHP Stack trace:
PHP 1. {main}() /Users/anahkiasen/config-closures/artisan:0
PHP 2. Illuminate\Foundation\Console\Kernel->handle() /Users/anahkiasen/config-closures/artisan:36
PHP 3. Illuminate\Foundation\Console\Kernel->bootstrap() /Users/anahkiasen/config-closures/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:96
PHP 4. Illuminate\Foundation\Application->bootstrapWith() /Users/anahkiasen/config-closures/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:196
PHP 5. Illuminate\Foundation\Bootstrap\LoadConfiguration->bootstrap() /Users/anahkiasen/config-closures/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:203
PHP 6. require() /Users/anahkiasen/config-closures/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/LoadConfiguration.php:27
Fatal error: Call to undefined method Closure::__set_state() in /Users/anahkiasen/config-closures/bootstrap/cache/config.php on line 22
Und der fehlerhafte Teil in der zwischengespeicherten Konfigurationsdatei:
array (
'oauth' =>
Closure::__set_state(array(
)),
),
Sollte Laravel hier nicht serialisierbare Verschlüsse nutzen?
Das ist schon mal vorgekommen. Wir unterstützen absichtlich keine Schließungen, da der Overhead der Deserialisierung größer ist als alles, was sonst gewonnen wird.
Jedes Konfigurationssystem, das Closures enthält, ist schlecht gestaltet.
Irgendeine Lösung dazu? config:cache ist momentan unbrauchbar
Hilfreichster Kommentar
Irgendeine Lösung dazu? config:cache ist momentan unbrauchbar