AQ Tech Blog

Laravel11とLaravel10の違いについての徹底解説【現役エンジニア向け】

作成者: kazuyuki.ohashi|2025年02月10日

1. Laravel 11の主な変更点

サポート終了スケジュールの変更

Laravel 11は2年間のサポートが提供され、長期運用できるようになっています。

  • 通常サポート:リリースから2年間のバグ修正・セキュリティ更新

これにより、Laravel 11は長期的に安定した環境を提供してくれます。

 

PHPバージョン要件の変更

Laravel 11では、PHP 8.2が必須要件です。これにより、ユニオン型やIntersection型などの新しい機能が利用でき、コードの堅牢性が向上しています。

 

ServiceProviderが5個から1個に変更

Laravel 11では、デフォルトで含まれるServiceProviderが大幅に削減されました。
Laravel 10では5つのServiceProviderが存在していましたが、Laravel 11ではAppServiceProvider.phpの1つのみとなっています。

特によく使用される印象のあったRouteServiceProvider.phpも削除されました。
ただし、RouteServiceProvider.phpで実行されていた処理に相当するコードは、bootstrap/app.phpに移動しています。

 

routesファイルからapi.phpとchannel.phpが削除

routesファイルの中もスッキリしました。api.phpとchannels.phpファイルがなくなっています。

 

なくなることの影響

[api.php]

  • ルートの構造が統一される一方で、APIとWebのルートが混在する可能性がある。
  • ミドルウェアやプレフィックスを手動で設定する手間が発生する
    [channel.php]
  • 開発者が意識的に設定を管理しないと、可読性やメンテナンス性が低下する可能性がある 

2. 新機能

新しいArtisanコマンド

Laravel 11では、コマンドラインから以下のクラスやファイルを簡単に生成できる新しいArtisanコマンドが追加されました。
これにより、Laravelアプリケーションの開発がさらに効率的になります。

 

利用可能なコマンド

  • クラスの作成

    php artisan make:class

    指定した名前の新しいクラスファイルを作成します。

  • 列挙型(Enum)の作成

    php artisan make:enum

    列挙型の定義を簡単に作成します。

  • インターフェースの作成

    php artisan make:interface

    新しいインターフェースファイルを生成します。

  • トレイトの作成

    php artisan make:trait

    トレイトを作成して、コードの再利用性を高めます。

 

これらのコマンドにより、手動でファイルを作成する手間が省け、Laravelアプリケーション開発のスピードが向上します。

 

プロンプトバリデーション

Laravel 11では、新しいPHPパッケージ「Laravel Prompts」が導入されました。このパッケージを使用することで、コマンドラインインターフェース(CLI)において、ユーザー入力を簡単に取得し、バリデーションを直感的に設定できます。

 

主な特徴

  • CLI環境での直感的なユーザー入力フォームを提供。
  • 多彩なバリデーションオプションをサポートしており、入力内容の検証が簡単に実装可能。
  • ユーザーフレンドリーなエラーメッセージを自動的に表示。

バリデーションの機能

Laravel Promptsでは、以下のようなバリデーションが簡単に設置できます

  • required : 必須入力項目
  • min : 入力文字数の最小値
  • max : 入力文字数の最大値
  • custom : 独自のカスタムバリデーション

 

使用例

以下は、名前の入力を促し、バリデーションを適用する例です。

use Laravel\Prompts\Prompt;

$name = Prompt::text('名前を入力してください:', [
'required' => true, // 入力必須
'min' => 3, // 最小文字数は3
'max' => 50, // 最大文字数は50
]);

echo "こんにちは、{$name}さん!";

3. Laravel 10からの移行方法

Laravel 10からの移行には以下の手順が必要です。

  1. PHPのバージョンアップ:PHP 8.2以上が必須です。
  2. パッケージの更新composer updateで依存パッケージを最新にします。
  3. アプリケーション構造 : Laravel 10アプリケーションをLaravel 11にアップグレードするときに、アプリケーション構造の変更はお勧めしません。

4. まとめ

Laravel 11は、開発者にとって以下のようなメリットを提供します。

1. 長期サポートと安定性

Laravel 11は通常サポートが2年間提供されます。このため、長期間にわたるプロジェクト運用に最適です。安定した環境を長期的に維持できる点が大きな魅力です。

 

2. 最新技術の活用

Laravel 11ではPHP 8.2が必須要件となり、最新のPHP機能を活用できます。

 

3. 開発効率の向上

新しいArtisanコマンドやLaravel Promptsを導入し、CLI操作がさらに便利になりました。

  • クラスやトレイトの生成を簡単に行えるため、手作業の時間を削減。
  • CLIでの入力バリデーションも直感的に設定可能。
    これらの機能により、開発スピードが大幅に向上します。

 

4. シンプルな構成と保守性の向上

ServiceProviderやroutesファイルの整理により、プロジェクトの構成がよりシンプルに改善されました。
これによりコードの見通しが良くなり、保守作業も容易になります。ただし、設定の管理には従来以上に注意が必要です。

 

5. 移行のしやすさ

Laravel 10からLaravel 11への移行は比較的簡単です。
主な作業は以下の通りです。

  • PHPのバージョンアップ:PHP 8.2以上への更新が必要です。
  • 依存パッケージの更新composer updateコマンドで最新バージョンにアップデート。
    これにより既存プロジェクトもスムーズにアップグレードできます。

Laravel 11は「使いやすさ」と「最新技術の採用」をバランスよく実現したアップデートです。
ぜひLaravel 11を活用し、よりモダンで効率的なアプリケーション開発を進めてみてください!