
【網羅的な単体テスト作成】構成・留意点・重要性からテスト設計を学ぶ
目次
はじめに:Laravel 11へのバージョンアップをスムーズに
Laravelは進化の早いフレームワークです。だからこそ、最新バージョンへのアップデートは開発効率やセキュリティの向上に不可欠です。本記事では、Laravel 10から11への変更点を解説します。
項目 |
内容 |
バージョンアップのメリット |
セキュリティ向上、新機能利用、パフォーマンス改善 |
対象読者 |
Laravel 10を利用中の開発者 |
Laravel 11は、PHP 8.2以上を必須とし、多くの変更点が含まれています。 routesディレクトリ構成の変更や、appディレクトリ内のプロバイダ整理などの変更があります。
しかし、これらの変更点はバージョンアップ時の対応を必要とする場合もあります。 本記事では、変更点の概要を分かりやすくまとめ、最新のLaravelで開発をより快適に 進めましょう。
Laravel 10 から 11 への変更点まとめ
Laravel 10 から 11 へのバージョンアップに伴い、いくつかの重要な変更点があります。スムーズな移行のため、これらの変更点を把握しておきましょう。まず、PHPのバージョン要件がPHP 8.2以上に引き上げられました。
ディレクトリ構造にも変更があり、routes/api.php
、routes/channels.php
といったルートファイルが削除され、ルート定義はroutes/web.php
に集約されました。また、app/Providers
ディレクトリ内の複数のサービスプロバイダは1つのファイルに統合されました。
変更点 |
内容 |
PHPバージョン |
8.2以上必須 |
ルート定義 |
|
app/Providers |
5ファイルから1ファイルに統合 |
デフォルトデータベース |
SQLite |
(1) PHP バージョン要件の変更 (PHP 8.2以上必須)
Laravel 11では、PHPのバージョン要件が変更され、PHP 8.2以上が必須となりました。
これまでLaravel 10を使用していた開発者は、PHP 8.1以前のバージョンを使っていた場合、Laravel 11にアップデートする前にPHPのバージョンアップが必要となります。PHPのバージョンアップによって、PHP 8.2で導入された新機能やパフォーマンス向上が利用可能になります。
バージョン |
PHP要件 |
Laravel 10 |
PHP 8.1 |
Laravel 11 |
PHP 8.2 |
PHP 8.2へのバージョンアップは、PHP公式ドキュメントなどを参考に進めてください。
サポート終了スケジュールの変更点
Laravelのサポート期間は、常に進化を続けるPHPのバージョンアップやセキュリティ対策への対応を維持するために、定期的に見直されています。Laravel 11では、このサポートスケジュールに重要な変更が加えられました。
バージョン |
リリース日 |
バグ修正期間 |
サポート期限 |
最新バージョン |
対応するPHPバージョン |
Laravel 6 |
2019年9月 |
2022年1月 |
2021年3月 |
6.20.45 |
7.2以上 |
Laravel 7 |
2020年3月 |
2020年10月 |
2023年1月 |
7.30.7 |
7.2.5以上 |
Laravel 8 |
2020年9月 |
2022年7月 |
2024年2月 |
8.83.29 |
7.3以上 |
Laravel 9 |
2022年2月 |
2023年8月 |
2024年2月 |
9.52.18 |
8.0.2以上 |
Laravel 10 |
2023年2月 |
2024年8月 |
2025年2月 |
10.48.25 |
8.1以上 |
Laravel 11 |
2024年3月 |
2025年9月 |
2026年3月 |
11.35.1 |
8.2以上 |
Laravel 12 |
2025年第1四半期 |
2026年第3四半期 |
2027年第1四半期 |
- |
- |
(2) ディレクトリ構造の変更 (routes,appなど)
Laravel 11では、より整理された構造を目指し、いくつかのディレクトリ構成が変更されました。 主な変更点を見ていきましょう。
変更点 |
説明 |
|
これらのファイルは削除され、 |
|
複数のサービスプロバイダが1つの |
これらの変更により、プロジェクトのルートディレクトリが簡素化され、ファイル数が削減されます。
バージョンアップの際には、これらの変更点に注意し、必要な修正を行いましょう。
(3)routes/api.php, routes/channels.phpの削除
Laravel 11では、routesディレクトリ内のファイル構成が変更され、
api.phpとchannels.phpが削除されました。
これにより、ルート定義の構造がよりシンプルになります。
api.phpの削除により、APIルートとWebルートがroutes/web.phpに統合されます。
従来 |
Laravel 11 |
routes/api.php |
routes/web.php |
routes/channels.php |
削除 |
これらの変更は、ルート定義の管理方法に影響を与えます。これまでapi.phpを使用していた場合は、web.phpにAPIルートを移行し、適切なミドルウェアやプレフィックスを設定する必要があります。また、channels.phpの削除に伴い、適切な方法で実装する必要があります。
これらの変更により、ルート定義がシンプルになり、コードの可読性と保守性が向上します。ただし、既存のアプリケーションをLaravel 11にアップグレードする場合は、これらの変更に対応する必要があります。
しかし、これらのファイルはシンプルなArtisanコマンドを使用して作成できます。
【api.php復活コマンド】
php artisan install:api
【channels.php復活コマンド】
php artisan install:broadcasting
(4)app/Providers内の整理 (5ファイルから1ファイルへ)
Laravel10ではServiceProviderは5個あったが、AppServiceProvider.phpの1個までに
減少しました。
Laravel 10 |
Laravel 11 |
|
|
|
|
|
|
|
|
|
|
Laravel 11 では、これらのサービスプロバイダーが AppServiceProvider.php
に統合されました。 この変更によりProviders内が簡素化され、コードの見通しが向上しました。 以前は複数のファイルに分かれていた設定や処理が1つのファイルに集約されたため、開発者はアプリケーションの初期設定やサービスの登録をより効率的に行うことができます。
(5) デフォルトデータベースの変更 (SQLite)
Laravel 11では、デフォルトのデータベースがSQLiteに変更されました。以前のLaravel 10まではMySQLがデフォルト設定でしたが、Laravel 11からは新規プロジェクト作成時にSQLiteが設定されます。
項目 |
Laravel 10 |
Laravel 11 |
デフォルトデータベース |
MySQL |
SQLite |
.envファイル |
DB_CONNECTION=mysql |
DB_CONNECTION=sqlite |
この変更は、手軽に開発を始められるようにするための改良です。SQLiteは設定不要で利用できるため、開発環境の構築がよりシンプルになります。もちろん、.envファイルのDB_CONNECTION
の値を変更することで、MySQLやPostgreSQL、SQL Serverなど、他のデータベースも引き続き利用可能です。
データベース接続設定は.env
ファイルに記述します。Laravel 11でMySQLを使用する場合は、.env
ファイルを以下のように変更してください。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
また、SQLiteを使用する場合は、以下のように設定します。
DB_CONNECTION=sqlite