PHP8・Laravel8にバージョンアップしたらartisanが”Required parameter $message follows optional parameter $level ”で実行できなくなったので対処した
出来事
ある日久々にphp artisan serve
をしてみたら以下のエラーが出て実行できなかった。
Required parameter $message follows optional parameter $level
遠因
PHP8になって、メソッドにおいて必須でないパラメータが必須のパラメータより前に定義されているとエラーを吐くようになったらしい。
そういえばLaravelはVersion7系にはあげたけれど、途中だったかもしれないと思って調査を開始。
原因
- Composerで入れたパッケージのアップグレードを途中で放り出していた。
- 何らかのミスでPHP8が入ってしまった。
どちらかだと思う。お粗末な話なので対処を開始。
解決手順
アップグレードガイドに従ってComposerパッケージをアップグレード
上記だけでは解決しなかった。
Log.phpという名前のファイルを検索
vendor/laravel/framework/src/Illuminate/Support/Facades/Log.php
が真っ先に見つかるがL24にはコメントしかない。
さらに探すと、
vendor/itsgoingd/clockwork/Clockwork/Request/Log.php
において、怒られている記述を発見できた。(v4.1.8)
itsgoingd/clockwork
をアップグレード
2021/1時点での最新版は5.0.6らしいので、composer.json
を以下のように修正。
"itsgoingd/clockwork": "^5.0"
アップデートを実行。
$ composer update
解決した。
% php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
[Sun Jan 10 11:46:10 2021] PHP 8.0.1 Development Server (http://127.0.0.1:8000) started
反省
PHP・Laravelのメジャーバージョンアップがどれほど面倒か身にしみてわかったので、今後の業務に活かしたい。
Author And Source
この問題について(PHP8・Laravel8にバージョンアップしたらartisanが”Required parameter $message follows optional parameter $level ”で実行できなくなったので対処した), 我々は、より多くの情報をここで見つけました https://qiita.com/ONO_Keyboard/items/cf21cf7e1084a886a87e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .