L6以来のLTSという事で待望の(?)Laravel9がリリースされました。という事で早速installを試してみます。
バージョン
まずはサポートの予定をチェックしてみましょう。
おや?Laravel9のLTS表記が消えていますね。なぜでしょう?
Taylor OtwellさんがTwitterで説明していました。
L9はPHP8.0以上をシステム要件としていましたが、依存パッケージである Symfony6.1 がPHP8.1を要件とする可能性があり(2022/02/16現在 github上で協議中)、L9のサポート期限はその決定次第で決まるとの事です。
表の期限は最悪のシナリオを想定したもので、symfonyの最低要件がPHP8.1になった場合でも2年間はサポートされるよ、との事です。
こちらの情報はモニターしておく必要がありそうです。
※追記@2022-02-28
Symfony6.1はPHP8.1以上が必須となりました、という事でL9のサポートは2年間となりました。
また、これに合わせて次のL10ではPHP8.1以上が要件となりした。
新規プロジェクト
前項でも触れましたがL9はPHP8.0以上が必要です、まだの方は先にPHPをバージョンアップして下さい。以下のコマンドでL9xというプロジェクトを作成してみましょう。
composer create-project --prefer-dist laravel/laravel:^9.0 l9x
プロジェクトディレクトリに移動し、早速立ち上げてみましょう。
cd L9x php artisan serve
ブラウザでhttp://127.0.0.1:8000
にアクセスするとお馴染みのホーム画面が表示されました。
route:list
今回のアップデートで変わった内容の1つにroute:list
が刷新された、とありました。早速試してみましょう。
php artisan route:list
刷新されたエラーページ
エラーページの出力も刷新され、パッケージがfacade/ignitionからspatie/laravel-ignitionに変更されました。
試しに表示してみましょう。ルートページにアクセスした際にエラーが発生するように変更します。
... Route::get('/', function () { throw new \Exception('Error on purpose'); // 追加 return view('welcome'); });
ブラウザでhttp://127.0.0.1:8000
にアクセスするとエラーページが表示されました。
ダークモードですね。
リクエストの詳細情報などはページ下部にあります。メニューバーのCONTEXTからも飛べます。
見やすいし、コピペしやすそうですね。
右上の歯車マークから、使用しているEDITORを指定する事で、エラー画面からエディタを開き該当行にジャンプできます。
facade/ignitionにも同様の機能がありましたが、デフォルトのエディタにPHPStormが指定されており、私が使用しているVS Codeに変更する場合は.env
に設定を書かなければならなかったので大変便利です。
該当行のペンマークのアイコンをクリックしてエディタ上でコードの該当部分にジャンプ。
エラー調査が捗りそうです。
ddd()復活?
過去の記事で紹介したddd()
ですが、L9で使うとCall to undefined function ddd()
エラーが発生してしまいます。
その件について、こちらのGitHubのDiscussionでDiscussされています。
spatie/laravel-ignitionの開発メンバー側はddd()
を使ってないのでパッケージをシンプルにする為に削除したとの事。
しかし、戻して欲しい、という意見が多かったので近い内に追加されるそうです。
コミュニティの意見をしっかりと聞いて反映する良いパッケージだな、という印象を受けました。