Laravelを7から8にバージョンアップする方法、注意点をまとめました。
最後にLaravel8にバージョンアップすべきかどうかも載せています。
Laravel8にバージョンアップしたい方、検討中の方は参考にしてくださいね。
Laravel8の14個の改善項目は下記にまとめているので、併せてご覧ください。
Laravel8の前提条件
Laravel8を使うには、PHP7.3.0以上が必要になります。
ご利用のPHPのバージョンをチェックしてください。
なおXAMPPのPHPをバージョンアップする方法は別記事にまとめました。
私は間違った方法で時間を無駄にしてしまいました。
XAMPPのPHPバージョンアップを検討中の方は、チェックしてくださいね。
Laravel8のバージョンアップ
composer.jsonファイルを開きます。
下記項目を変更します。
- guzzlehttp/guzzleを^7.0.1へ
- facade/ignitionを^2.3.6へ
- laravel/frameworkを^8.0へ
- laravel/uiを^3.0へ
- nunomaduro/collisionを^5.0へ
- phpunit/phpunitを^9.0へ
最後に、composer update コマンドを実行。
1 |
composer update |
しばらくすると、アップデートが終了します。
Laravel8のバージョンアップ後に必要な変更
Laravel8ではルート設定の仕方やモデルフォルダの場所が変わったりします。
ただLaravel7→8へバージョンアップした場合には、Laravel7の方法で使用できます。
ただし次の既存機能に影響がある可能性があります。
該当するものがないかチェックしてみてください。
影響度が高いものは★印をつけています。
【Laravel8へのバージョンアップで影響がある機能】
- コレクション/issetメソッド
- Database/シーダとファクトリの名前空間 ★
- モデルファクトリ ★
- Castableインターフェース
- Increment/Decrementイベント
- イベント/Dispatcher契約
- メンテナンスアップデート
- php artisan down –messageオプション
- $appプロパティマネージャー
- elixirヘルパー
- メール/sendNowメソッド
- ページネーション ★
- キュー/rentryAfterメソッド ★
- キュー/timeAtプロパティ ★
- キュー/allOnQueue()/allOnConnection()メソッド
- 失敗したジョブテーブルのバッチサポート
- ルーティング/コントローラ名前空間
- スケジュール/cron-expressionライブラリ
- セッション/Session契約
- テスト/assertExactJasonメソッド
- バリデーションデータベースルール接続
特に、ファクトリ・bootstrapのページネーション・キューの項目で影響がありそうです。
バージョンアップ後に修正が必要になるものもあります。
修正方法は、公式マニュアルをご確認ください。
Laravel8にバージョンアップを行うべきか?
ところで、そもそも論として、Laravel8へのバージョンアップが必要かどうか。
私の意見では、今バージョン7をご利用なら、バグ修正のサポートが10月6日で切れてしまうので、バージョンアップしたほうが良いかと思います。
ただ、Laravel6をご利用なら、そのままのほうがよいのではと感じます。
というのも、Laravel6は長期間サポートしてもらえるLTS版であるため、2021年の9月3日までサポートがあるからです。
バージョン | リリース日 | バグ修正サポート | セキュリティ修正サポート |
---|---|---|---|
6 | 2019-09-03 00:00:00 | 2021-09-03 00:00:00 | 2022-09-03 00:00:00 |
7 | 2020-03-03 00:00:00 | 2020-10-06 00:00:00 | 2021-03-03 00:00:00 |
8 | 2020-09-08 00:00:00 | 2021-04-06 00:00:00 | 2021-09-08 00:00:00 |
通常版は半年ごとにバージョンアップがあります。
ビジネス利用など、あまり度々バージョンを変えたくない場合は、LTS版のほうが良さそうですね。
!2021年2月追記:今後のバージョンはアップは1年に1度ペースになるとのこと!
詳しくはこちらをどうぞ。