メインコンテンツに移動
Larave11

【網羅的な単体テスト作成】構成・留意点・重要性からテスト設計を学ぶ

目次

 

はじめに: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.phproutes/channels.phpといったルートファイルが削除され、ルート定義はroutes/web.phpに集約されました。また、app/Providersディレクトリ内の複数のサービスプロバイダは1つのファイルに統合されました。

変更点

内容

PHPバージョン

8.2以上必須

ルート定義

routes/web.phpに集約

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では、より整理された構造を目指し、いくつかのディレクトリ構成が変更されました。 主な変更点を見ていきましょう。

変更点

説明

routes/api.php,

routes/console.php の削除

これらのファイルは削除され、routes/web.php に統合されました。

app/Providers 内の整理

複数のサービスプロバイダが1つの app/Providers/AppServiceProvider.php に統合されました。これにより、サービスプロバイダの管理がシンプルになります。

これらの変更により、プロジェクトのルートディレクトリが簡素化され、ファイル数が削減されます。

バージョンアップの際には、これらの変更点に注意し、必要な修正を行いましょう。

(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

AppServiceProvider.php

AppServiceProvider.php

AuthServiceProvider.php

 

BroadcastServiceProvider.php

 

EventServiceProvider.php

 

RouteServiceProvider.php

 

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

 

 

タグ

記事一覧へ戻る