Laravel 6.x から Laravel 8.x にバージョンアップしますが、普通に composer update すると以下のエラーがでます。
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
PHP Fatal error: Declaration of App\Exceptions\Handler::report(Exception $exception) must be compatible with Illuminate\Foundation\Exceptions\Handler::report(Throwable $e) in /Users/yoo/projects/ict-kids/app/Exceptions/Handler.php on line 35
app/Exceptions/
Handler.php の Exception の処理が 6.x から 7.x で変更されているため、手動で修正します。
namespace App\Exceptions;
use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
...
public function report(Exception $exception)
{
parent::report($exception);
}
...
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
namespace App\Exceptions;
use Throwable; //追加
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler
{
...
public function report(Throwable $exception) //修正
{
parent::report($exception);
}
...
public function render($request, Throwable $exception) //修正
{
return parent::render($request, $exception);
}
「Laravel 8.x アップグレードガイド 」を参考に composer.json を修正します。
"require": {
...
"laravel/framework": "^8.0",
"guzzlehttp/guzzle": "^7.2",
...
},
"require-dev": {
"facade/ignition": "^2.3.6",
...
"laravel/ui": "^3.0",
...
"nunomaduro/collision": "^5.0",
"phpunit/phpunit": "^9.0
},
Composer で Laravel8 へアップデートします
$ composer update
バージョンを確認します。
$ php artisan -V
Laravel Framework 8.11.2