Laravel

Laravel 12の対応PHPバージョンと動作要件|サポート期限・11からのアップグレード・変更点

Laravel 12は2025年2月24日にリリースされた、保守(メンテナンス)を主眼としたバージョンです。新規プロジェクトの立ち上げや既存アプリの移行でまず気になるのが「PHPはどのバージョンが必要か」ですが、Laravel 12が対応するのはPHP 8.2〜8.4で、最小要件はPHP 8.2です。この記事はLaravel 12に固有の動作要件・サポート期限・Laravel 11からのアップグレード・変更点を実務目線で整理します。なお最新の安定版は2026年3月にリリースされたLaravel 13(最小PHP 8.3)です。「最新版で始めたい」場合はLaravel 13(最新安定版)のAI SDK解説記事を参照してください。

まとめ:Laravel 12の要点

  • 対応PHP:8.2・8.3・8.4(最小8.2)。PHP 8.1以下では動きません。
  • リリース:2025年2月24日。破壊的変更を最小化した「保守リリース」で、多くのアプリはコード変更なしで11から移行できます。
  • サポート期限:バグ修正は2026年8月13日、セキュリティ修正は2027年2月24日まで
  • 目玉はPHPではなく開発体験:React/Vue/Livewire向けの新スターターキットとWorkOS AuthKitが登場し、Laravel Breeze・Jetstreamは新規更新を終了しました。
  • 新規プロジェクトはLaravel 13を推奨。Laravel 12は「PHP 8.2を使い続けたい既存アプリ」の橋渡しとして選ぶのが妥当です。

Laravel 12が対応するPHPバージョンと動作要件

Laravel 12の動作要件で最初に確認すべきはPHPのバージョンです。Laravel 11から要件は据え置きで、PHP 8.2を最小とし、8.3・8.4でも動作します。

必要なPHPバージョンは8.2〜8.4(最小8.2)

Laravel 12はPHP 8.2・8.3・8.4に対応します。PHP 8.1はLaravel 11の途中でサポート外となっており、Laravel 12では利用できません。一方でLaravel 13はPHP 8.2を切り捨て、最小要件がPHP 8.3に引き上げられています。つまりPHP 8.2で運用を続けたい環境が使える最後のメジャーバージョンがLaravel 12という位置づけです。現在のPHPバージョンは次のコマンドで確認できます。

php -v
php artisan --version

PHP以外の要件と確認方法

PHPバージョンに加えて、Composer 2系と、Laravelが標準で必要とするPHP拡張(Ctype、cURL、DOM、Fileinfo、Filter、Hash、Mbstring、OpenSSL、PCRE、PDO、Session、Tokenizer、XMLなど)が必要です。Laravelインストーラや公式のセットアップスクリプトを使う場合は、導入されるPHPがLaravel 12の要件(8.2〜8.4)を満たすかを最初に確認してください。既存サーバーのPHP拡張はphp -mで一覧確認できます。

Laravel 12と13の選択基準

バージョン選択の判断軸はシンプルです。PHP 8.3以上をすぐ用意できるなら、新規プロジェクトはLaravel 13が第一候補です。Laravel 13は破壊的変更ゼロを掲げており、12からの移行も軽い一方でサポート期間が新しいためです。本番のPHPが8.2に固定されている、または依存パッケージがPHP 8.3未対応という制約がある場合に限り、Laravel 12を選ぶ意味があります。バージョンごとのドキュメントの読み分けはLaravelのドキュメント完全ガイドが参考になります。

Laravel 12のリリース時期とサポート期限

「今からLaravel 12を採用してよいか」を判断するには、リリース時期とサポート期限を押さえる必要があります。

リリース日と「保守リリース」という位置づけ

Laravel 12は2025年2月24日にリリースされました。開発チームはこのサイクルで破壊的変更の最小化を重視しており、フレームワーク自体の大規模な新機能追加よりも、依存パッケージの更新と品質改善に軸足を置いています。Laravelは年1回のメジャーリリースへ移行しており、翌年の2026年3月17日にLaravel 13がリリースされています。

バグ修正・セキュリティ修正の期限

Laravelのメジャーバージョンは、バグ修正がリリースから18か月、セキュリティ修正が2年提供されます。Laravel 12の具体的な期限は次のとおりです。

バージョン リリース日 バグ修正期限 セキュリティ修正期限 最小PHP
Laravel 11 2024-03-12 2025-09-03 2026-03-12 8.2
Laravel 12 2025-02-24 2026-08-13 2027-02-24 8.2
Laravel 13 2026-03-17 2027年Q3 2028年Q1 8.3

2026年後半の時点でLaravel 12のバグ修正期限は目前に迫っています。新規に長期運用するアプリでLaravel 12を選ぶと、まもなくセキュリティ修正のみの期間に入る点は判断材料に入れておくべきです。

Laravel 12のインストールと開発環境の構築

Laravel 12のインストール手順自体は11とほぼ同じですが、スターターキットの選び方が変わりました。

Laravelインストーラ/Composerでの新規作成

Laravelインストーラを使う場合は、まずインストーラ自体をLaravel 12対応へ更新します。

composer global update laravel/installer
laravel new example-app

Composerだけで作成する場合は次のとおりです。^12.0を指定すればLaravel 12系が入ります。

composer create-project laravel/laravel:^12.0 example-app

laravel newを実行すると、React・Vue・Livewireのスターターキットや認証方式(Laravel標準認証かWorkOS AuthKitか)を対話的に選択できます。

Docker(Sail)やLaragonでのローカル環境

PHPを直接インストールせずに始めたい場合は、Docker上でPHP・MySQL・nginxをまとめて動かすLaravel Sailが手軽です。プロジェクト作成後、次のコマンドでコンテナ環境を起動します。

./vendor/bin/sail up -d
./vendor/bin/sail artisan migrate

Windowsで、PHP・MySQL・Apacheを一括導入できる環境を好む場合はLaragonも選択肢になります。いずれの場合も、コンテナやツールが提供するPHPがLaravel 12の要件(8.2〜8.4)を満たしているかを最初に確認してください。

Laravel 11からLaravel 12へのアップグレード手順

Laravel 12は破壊的変更を絞ったリリースで、公式は見積もり作業時間を約5分としています。多くのアプリはアプリケーションコードを変更せずに移行できますが、影響度の高い項目は事前に確認しておきます。

依存パッケージの更新

まずcomposer.jsonの主要な依存を更新します。テスト関連のメジャーバージョンも上がる点に注意してください。

"laravel/framework": "^12.0",
"phpunit/phpunit": "^11.0",
"pestphp/pest": "^3.0"

更新後にcomposer updateを実行します。スキーマやデータ構造に手を入れる場合は、マイグレーションの基本を踏まえて差分を管理すると安全です。

Laravel 11→12 破壊的変更の影響度一覧

公式アップグレードガイドが挙げる変更のうち、実アプリに影響しやすいものを影響度順に整理します。ほとんどが「影響度:低」で、条件に当てはまらなければ対応不要です。

影響度 変更点 対応の要否
依存の更新(framework/phpunit/pest)とインストーラ更新 必須
HasUuidsがUUIDv7を生成(順序付きUUID) v4継続時のみ対応
Carbon 2系のサポート終了(Carbon 3必須) 独自にCarbon 2依存時のみ
imageバリデーションがSVGを除外 SVG許可時のみ
localディスクの既定ルートがstorage/app/private local未定義時のみ
Concurrency::runの結果がキー付きで返る 連想配列利用時のみ
Schema::getTables等が全スキーマを対象 複数スキーマ運用時のみ
mergeIfMissingがドット記法のネストに対応 該当利用時のみ

実務で見落としやすいのはHasUuidsのUUIDv7化(影響度:中)です。モデルの主キーにv4形式のUUIDを使い続けたい場合は、HasUuidsの代わりにHasVersion4Uuidsトレイトへ切り替えます。以前あったHasVersion7Uuidsトレイトは削除され、HasUuidsがその役割を担うようになりました。

Laravel 12の主な変更点(Laravel 11との違い)

Laravel 12の実質的な変化は、フレームワーク内部よりもプロジェクトの立ち上げ方(スターターキット)に表れています。

新スターターキットとWorkOS AuthKit

Laravel 12ではReact・Vue・Livewireの新しいスターターキットが用意されました。React/Vue版はInertia 2・TypeScript・Tailwind CSS・shadcn/uiで構成され、Livewire版はFlux UIとLaravel Voltを採用します。各キットはログイン・登録・パスワードリセット・メール確認などを標準で備え、WorkOS AuthKitを選べばソーシャルログイン・パスキー・SSOも利用できます。詳しくはスターターキットへの移行と代替案にまとめています。

Laravel Breeze・Jetstreamの非推奨化

新スターターキットの登場に伴い、従来のLaravel BreezeとLaravel Jetstreamは追加の更新を受けなくなりました。既存プロジェクトがすぐ壊れるわけではありませんが、新規構築ではBreeze/Jetstreamを選ばず、新スターターキットを起点にするのが今後の標準です。移行の判断材料は前掲の記事で整理しています。

Blade・キューなど既存機能は据え置き

「Laravel 12でBladeやキューが大きく変わったのか」という疑問に対しては、答えは「大きな変更はない」です。Laravel 12は保守リリースであり、Blade構文・キュー・Eloquentの基本APIに破壊的な変更は入っていません。上記の破壊的変更表に該当しない限り、既存のBladeテンプレートやキューのジョブはそのまま動作します。安定した挙動を維持したいプロジェクトにとっては、この「変わらなさ」自体が12の利点です。

Laravel 12採用の判断基準(バージョン選択)

結論から言えば、2026年時点で新規プロジェクトを始めるならLaravel 13を選ぶべきです。Laravel 12のバグ修正期限(2026年8月)が近く、13は破壊的変更ゼロでサポート期間も新しいため、あえて12で新規開発する理由はほとんどありません。

Laravel 12が正解になるのは、次の条件に当てはまる既存アプリです。本番のPHPが8.2で固定され、8.3への引き上げ計画がまだ立たない、あるいは利用中のパッケージがPHP 8.3やLaravel 13に未対応——こうした場合、11から12へ上げて延命し、PHP 8.3の準備が整った段階で13へ進む「二段階移行」が現実的です。逆に、PHP 8.3をすぐ用意できるのに新規で12を選ぶのは、短いサポート期間をわざわざ選ぶことになり避けるべきです。

よくある質問

Laravel 12に必要なPHPのバージョンは?

PHP 8.2・8.3・8.4に対応し、最小要件はPHP 8.2です。PHP 8.1以下では動作しません。Laravel 13へ進む場合は最小がPHP 8.3になります。

Laravel 12のサポート期限はいつまでですか?

バグ修正は2026年8月13日まで、セキュリティ修正は2027年2月24日までです。長期運用を前提にする場合はこの期限を確認したうえでバージョンを選んでください。

Laravel 12は今から使っても大丈夫ですか?最新版はどれですか?

最新の安定版は2026年3月リリースのLaravel 13です。新規プロジェクトは13を推奨します。Laravel 12は、PHP 8.2に固定された既存環境の橋渡しとして使う場合に適しています。

Laravel 11から12へのアップグレードは大変ですか?

公式の見積もりは約5分で、多くのアプリはコード変更なしで移行できます。依存パッケージの更新が必須で、UUIDv7化(影響度:中)だけは主キーにUUIDを使うアプリで確認が必要です。

Laravel 12のインストール方法は?

composer create-project laravel/laravel:^12.0 example-app、またはLaravelインストーラを更新してlaravel newを実行します。作成時にReact/Vue/Livewireのスターターキットと認証方式を選択できます。

関連記事

資料請求

RELATED POSTS 関連記事