目次
0.PHPフレームワーク「Laravel」とは?
フレームワークとはWeb上のアプリケーションを効率的に構築するための共通部品やルールがまとまった「開発の土台」のようなものです。中でもLaravelは、広く使われているプログラミング言語のPHPをベースに、Webサイトやシステムが快適かつ安全に動作するための基盤を提供してくれます。まるで「縁の下の力持ち」のように、開発をサポートしてくれる存在です。
1. はじめに:Laravel 12への期待と概要
人気のPHPフレームワークであるLaravelが、2025年2月24日に待望のメジャーアップデート、Laravel 12をリリースしました。このバージョンアップは、開発者の皆様にとって、より効率的で堅牢なアプリケーション開発を実現するための重要な一歩となります。
本記事では、これらのLaravel 12の新機能と、Laravel 11からの主要な変更点を、開発者の皆様がスムーズにキャッチアップできるよう、分かりやすく解説していきます。
(1) Laravel 12リリースへの期待感
PHPフレームワークの中でも特に人気の高いLaravelは、常に最新の技術トレンドを取り入れ、開発者にとって使いやすい環境の構築をサポートしています。例年1月から3月頃にリリースされるLaravelのメジャーバージョンアップグレードは、開発者の間で大きな注目を集めています。
2025年2月24日に公開されたLaravel 12は、前バージョンから引き続き、派手な新機能というよりは、日々の開発作業をよりスムーズにし、アプリケーションの質を高めるための「メンテナンス」に重点を置いたアップデートとなっています。
具体的には、以下のような点が期待されています。
-
パフォーマンスの向上: 処理速度の改善や、より効率的なリソース活用が期待されます。
-
開発体験の向上: 開発者がより快適にコーディングできるような、細かな改善が多数施されています。
これらの改善により、Laravel 12は、より堅牢で効率的なWebアプリケーション開発を実現する基盤となることが期待されています。
(2) 本記事で解説する内容の概観
本記事では、2025年2月24日にリリースされたLaravel 12の最新情報について、開発者の皆様が知っておくべきポイントを網羅的に解説いたします。Laravel 11からのメジャーアップデートとなるLaravel 12では、特に以下のような変更点に注目が集まっています。
|
項目 |
内容 |
|
パフォーマンス・内部処理 |
並列処理機能の強化(Concurrency::run()メソッドの改善)や、サービスコンテナ、複数スキーマを持つデータベースの扱いなど、フレームワーク内部の細かな動作改善による信頼性・整合性の向上について掘り下げます。 |
|
動作仕様の変更点 |
|
これらの変更点を理解することで、Laravel 12へのスムーズな移行と、より効率的で堅牢なアプリケーション開発が可能になります。
2. Laravel 11から12への主要な変更点
Laravel 12では、開発者の生産性向上とフレームワークの信頼性強化に焦点を当てたアップデートが行われました。特に、スターターキットの進化、パフォーマンスと内部処理の最適化、そして動作仕様の変更が注目されます。
■スターターキットの進化 開発初期設定のスピードアップを目指し、最新のスターターキットが導入されました。これにより、認証機能やモダンなフロントエンド環境(React、Vue、Livewireなど)のセットアップ時間を大幅に短縮できます。Shadcn/uiやFlux UIといった人気のUIコンポーネント集、WorkOSとの連携によるソーシャルログイン・SSO機能の実装も容易になりました。
■パフォーマンスと内部処理の最適化 並列処理機能が強化され、Concurrency::run() メソッドでキー情報が保持されるようになり、並列タスク管理が向上しました。また、サービスコンテナによる依存オブジェクトの自動作成や、複数スキーマを持つデータベースの扱いなども改善され、フレームワーク内部の信頼性と整合性が高められています。
■動作仕様の変更点
|
変更点 |
内容 |
|
リクエスト処理 |
|
|
検証ルール |
セキュリティ向上のため、画像検証ルールでデフォルトでSVG形式が許可されなくなりました。明示的な設定が必要です。 |
|
Carbon 3への必須化 |
最新スターターキットを導入
Laravel 12では、アプリケーション開発の初期設定を大幅にスピードアップする、新しいスターターキットが導入されました。これにより、認証機能の組み込みやモダンなフロントエンド環境(React、Vue、Livewireなど)のセットアップにかかる時間を大きく削減できます。
人気のUIコンポーネント集であるShadcn/ui(React/Vue向け)やFlux UI(Livewire向け)も採用されており、洗練されたUIを素早く構築可能です。さらに、WorkOSとの連携により、ソーシャルログインやシングルサインオン(SSO)といった複雑な認証機能も、わずかな手順で実装できるようになりました。
並列処理と内部動作の改善
Laravel 12では、複数の処理をより効率的かつ確実に扱えるように、並列処理(Concurrency)機能が強化されました。例えば、Concurrency::run() メソッドが結果を返す際にキー情報を保持するようになり、並列タスクの管理がしやすくなりました。また、サービスコンテナによる依存オブジェクトの自動作成時の挙動がより予測可能になったり、複数スキーマを持つデータベースの情報を取得する際の扱いが統一されたりと、フレームワーク内部の細かな動作も改善され、開発体験とアプリケーション内部の信頼性や整合性の向上に貢献しています。
並列処理の改善点
連想配列を用い、Concurrency::runメソッドを呼び出すと、並行処理の結果を関連するキーと一緒に返すようになりました。
$result = Concurrency::run([
'task-1' => fn () => 1 + 1,
'task-2' => fn () => 2 + 2,
]);
// ['task-1' => 2, 'task-2' => 4]
Carbon 3への必須化
Carbon2.xのサポートを削除しました。すべてのLaravel 12アプリケーションはCarbon 3.xを必須になりました。
ImageバリデーションからSVGを除外
imageバリデーションルールは、デフォルトでSVG画像を許可しなくなりました。もし、imageルールでSVGを許可したい場合は、明示的に許可する必要があります。
use Illuminate\Validation\Rules\File;
'photo' => 'required|image:allow_svg'
// もしくは
'photo' => ['required', File::image(allowSvg: true)],
リクエストのネストした配列のマージ
$request->mergeIfMissing()メソッドは、「ドット」記法を使用してネストした配列データをマージできるようになりました。これまでこのメソッドに依存して「ドット」記法バージョンのキーを含むトップレベル配列キーを作成している場合は、この新しい挙動を考慮してアプリケーションを調整する必要があるかもしれません。
$request->mergeIfMissing([
'user.last_name' => 'Otwell',
]);
ローカルファイルデスクのデフォルトルートパス
アプリケーションがファイルシステム設定で明示的にlocalディスクを定義していない場合、Laravelはローカルディスクのルートをデフォルトでstorage/app/privateにするようになりました。以前のリリースでは、デフォルトはstorage/appでした。そのため、Storage::disk('local')を呼び出すと、特に設定しない限りstorage/app/privateから読み込み、storage/app/privateへ書き込みます。以前の動作に戻すには、手作業でlocalディスクを定義し、希望するルートパスを設定します。