【PHP】Laravel5.1からLaravel5.5にアップグレードしてcomposer installしたときにPHP Fatal errorが出たときの対処方法

Laravel5.1をLaravel5.5にアップグレードして composer installを実行したときに、以下のエラーが出ました。

PHP Fatal error:  Uncaught Error: Class name must be a valid object or a string in /var/www/hogehoge/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:139
Stack trace:
#0 [internal function]: Illuminate\Foundation\Exceptions\Handler->Illuminate\Foundation\Exceptions\{closure}(0, 'Symfony\\Compone...')
#1 /var/www/hogehoge/bootstrap/cache/compiled.php(6213): call_user_func(Object(Closure), 0, 'Symfony\\Compone...')
#2 /var/www/hogehoge/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(140): Illuminate\Support\Arr::first(Array, Object(Closure))
#3 /var/www/hogehoge/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php(97): Illuminate\Foundation\Exceptions\Handler->shouldntReport(Object(ReflectionException))
#4 /var/www/hogehoge/app/Exceptions/Handler.php(34): Illuminate\Foundation\Exceptions\Handler->report(Object(ReflectionException))
#5 /var/www/hogehoge/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(3 in /var/www/hogehoge/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php on line 139
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255

エラーメッセージでググってみると、stackoverflowに解決方法がありました。

Composer Update with Laravel 5.4 & PHP 7 “Class Name must be a valid object or a string” - Stack Overflow

書かれている通り、bootstrap/cache/compiled.php を削除して再度 composer install を実行すると、エラーは出ませんでした。

compiled.php はプロジェクトの実行効率を上げるファイルですが、Laravel5.4へのアップグレードドキュメントに下記の記載がありました。

コンパイル済みサービスファイルの削除 存在している場合は、bootstrap/cache/compiled.phpファイルを削除してください。フレームワークで使用しなくなりました。 アップグレードガイド 5.4 Laravel

しっかりドキュメントに書いてありました。

comments powered by Disqus