バグ解消法、お役立ち情報など

Laravel 9 → 10 へアップグレードをしてみました。

Laravel logo

先日、Laravelの最新バージョンであるLaravel 10がリリースされました。

リリースノート

というわけで、早速アップグレードをしてみました!

元々 Laravel 9 を使用していたので、9 → 10 へのアップグレードです。

アップグレード手順

基本的には、公式のガイドに沿ってアップグレードしていきます。

Upgrade Guide

以下のような手順になります。

1. 依存関係の解消

Composer の依存関係を解消します。

Updating Dependencies

Dependencies

具体的には、下記のように変更します。

composer.json
"php": "^8.1.0", // 8.0.2 → 8.1.0 "laravel/sanctum": "^3.2", // 2.14.1 → 3.2 "laravel/framework": "^10.0", // 9.11 → 10.0 "spatie/laravel-ignition": "^2.0", // 1.0 → 2.0

2. PHPUnit 9 → 10

今回はついでにPHPUnitを 10 にあげました。

Furthermore, if you wish to use PHPUnit 10, you should delete the processUncoveredFiles attribute from the <coverage> section of your application's phpunit.xml configuration file.

さらに、PHPUnit 10 を使いたい場合は、アプリケーションの phpunit.xml 設定ファイルの <coverage> セクションから processUncoveredFiles 属性を削除しておく必要があります。

というわけで、coverage の記述箇所を変更します。

変更前
<coverage processUncoveredFiles="true">
変更後
<coverage>

composer.json は以下のように変更します。

composer.json
"nunomaduro/collision": "^7.0", // 6.1 → 7.0 "phpunit/phpunit": "^10.0", // 9.5.10 → 10.0

3. minimum-stability を stable へ変更

Minimum Stability

composer.json
"minimum-stability": "stable", // dev → stable

4. dates プロパティを変更

dates プロパティが使えなくなったため、castsへと移行します。

Model "Dates" Property

Model(変更前)
protected $dates = [ 'created', 'deployed_at', ];
Model(変更後)
protected $casts = [ 'created' => 'datetime', 'deployed_at' => 'datetime', ];

5. composer u

最後に、composer uコマンドでアップデートを行います。

composer u

6. 確認

では、Laravelのバージョンを確認してみます。

下記のコマンドを実行します。

ターミナル
php artisan -V

アップグレードできました!

Result

おわりに

Laravel 9 → 10 は、比較的簡単に移行できたと感じました。

Laravel 10 にはいくつも新しい機能が追加されているので、これからどんどん試していきます!

以上です。

バグ解消法、お役立ち情報など