Laravel 12 新機能まとめ|スターターキット刷新・WorkOS連携・面接対策【2026年最新版】

Laravel 12の新機能を徹底解説。Breeze/Jetstreamに代わる新スターターキット、WorkOS AuthKit統合、Carbon 3対応、アップグレード手順、2026年版面接質問まで網羅的に紹介します。

Laravel 12 新機能とスターターキット

Laravel 12の新機能は、フレームワークのスターターキットの全面的な刷新と、意図的に最小限に抑えられた破壊的変更を中心に構成されています。2025年2月24日にリリースされた本バージョンは、BreezeとJetstreamの両方を廃止し、React 19、Vue 3、Svelte 5、Livewire 4をベースとした、フレームワーク固有のモダンなスキャフォールディングに置き換えました。リリースの基本方針は安定性を最優先としており、ほとんどのLaravel 11アプリケーションは、コードの変更なしにアップグレードが可能です。

破壊的変更ゼロ

Laravel 12はメンテナンスリリースです。Laravel 11からのアップグレードでは、大多数のプロジェクトにおいてアプリケーションコードの変更は不要です。開発チームは破壊的変更を蓄積する代わりに、11.xサイクル全体を通じて利便性の向上に注力しました。

新スターターキットがBreezeとJetstreamを置き換え

Laravel 12における最も目に見える変更は、BreezeとJetstreamが4つの専用スターターキットに置き換えられたことです。既存のプロジェクトにインストールする従来のパッケージとは異なり、これらのキットは初日からすべてのコードが可視化され、自由に変更できる完全な新規プロジェクトをスキャフォールディングします。

各キットには、認証、ユーザー登録、パスワードリセット、メール認証、ユーザープロファイル管理が標準で含まれています。

| スターターキット | スタック | UIライブラリ | |------------|-------|------------| | React | Inertia 2, React 19, TypeScript | shadcn/ui | | Vue | Inertia 2, Vue 3, TypeScript | shadcn-vue | | Svelte | Inertia 2, Svelte 5, TypeScript | shadcn-svelte | | Livewire | Livewire 4, Laravel Volt | Flux UI |

4つのキットすべてにTailwind CSS 4、ダーク/ライト/システムモード対応、認証ページ用の複数のレイアウトバリアント(シンプル、カード、スプリット)が含まれています。

bash
# Reactスターターキットで新しいLaravelプロジェクトをインストール
laravel new my-app

# または、コミュニティスターターキットを指定
laravel new my-app --using=vendor/custom-starter-kit

Laravel 12では、誰でもカスタムスターターキットを作成・公開できる仕組みも導入されました。--usingフラグを通じて登録する方式が採用されています。

このアーキテクチャの変更により、チームはプロジェクト開始時点で認証周りのコードをすべて把握できるようになりました。ブラックボックス化されたパッケージに依存する必要がなくなったため、カスタマイズの自由度が大幅に向上しています。

WorkOS AuthKitによるエンタープライズ認証の統合

各スターターキットにはWorkOS AuthKitバリアントが用意されており、カスタム実装なしでエンタープライズグレードの認証機能を追加できます。

  • ソーシャル認証(Google、GitHub、Microsoftなど)
  • パスキーによる生体認証を利用したパスワードレスログイン
  • シングルサインオン(SSO) SAMLおよびOIDCプロバイダー対応

WorkOSの無料プランでは月間最大100万人のアクティブユーザーに対応しており、規模を問わずプロジェクトで活用可能です。

config/services.phpphp
'workos' => [
    'client_id' => env('WORKOS_CLIENT_ID'),
    'api_key' => env('WORKOS_API_KEY'),
    'redirect_url' => env('WORKOS_REDIRECT_URL'),
],

WorkOS AuthKitの統合は、特にBtoB向けSaaSアプリケーションにおいて大きな意味を持ちます。従来、SAML SSOの実装には数週間の開発工数が必要でしたが、スターターキットを利用すれば数分で設定が完了します。

依存関係の更新とPHP要件

Laravel 12はPHP 8.2から8.5を必要とし、すべての日付・時刻操作においてCarbon 3の使用を義務付けています。

php
// Carbon 3はより厳密な型付けを強制
use Carbon\Carbon;

$now = Carbon::now(); // strictモードではデフォルトでCarbonImmutableを返す
$future = $now->addDays(30);

// $nowは変更されない — 不変性が保証される

Carbon 3への移行は、日付操作における予期しない副作用を防止するための重要なステップです。Carbon 2ではミュータブルなオブジェクトがデフォルトであったため、意図しない日付変更が原因で発生するバグが少なくありませんでした。Carbon 3のイミュータブルアプローチにより、この種の問題は根本的に解消されます。

サポートスケジュール

Laravel 12は2026年8月までバグ修正、2027年2月までセキュリティパッチが提供されます。Laravel 13は2026年3月17日にリリースされ、最新のメジャーバージョンとなっています。Laravel 12から13へのアップグレードでも破壊的変更はありません。

パッチリリースで追加された利便性の向上

配列とコレクションのヘルパー

php
use Illuminate\Support\Arr;

// キーではなく値でフィルタリング(12.46.0で追加)
$filtered = Arr::onlyValues(['admin', 'editor', 'viewer'], ['admin', 'editor']);
// 結果: ['admin', 'editor']

$excluded = Arr::exceptValues(['admin', 'editor', 'viewer'], ['viewer']);
// 結果: ['admin', 'editor']

// コレクションに複数の要素があるかチェック
$users = collect([/* ... */]);
if ($users->containsManyItems()) {
    // 一括処理を実行
}

Arr::onlyValues()Arr::exceptValues()は、ロールベースのアクセス制御やフィルタリング処理で特に有用です。従来はarray_filter()とコールバック関数の組み合わせで実現していた処理が、ワンライナーで記述可能になりました。

Gateと認可の強化

php
use Illuminate\Support\Facades\Gate;

// Gate::has()でのUnitEnumサポート(12.45.2で追加)
enum Permission {
    case ViewDashboard;
    case ManageUsers;
}

if (Gate::has(Permission::ViewDashboard)) {
    // アビリティが定義済み — 文字列ベースのチェックよりも型安全
}

PHP 8.1で導入されたEnumをGateで直接利用できるようになったことで、権限管理のコードベースがより堅牢になります。文字列のタイプミスに起因する権限漏れのリスクが排除されるため、セキュリティ面でも改善が期待できます。

スキーマとコンテナの修正

Schema::getTables()Schema::getViews()Schema::getTypes()メソッドは、デフォルトですべてのスキーマから結果を返すようになりました。この変更はPostgreSQLのような複数スキーマをサポートするデータベースを使用するプロジェクトで特に影響があります。

Laravelの面接対策はできていますか?

インタラクティブなシミュレーター、flashcards、技術テストで練習しましょう。

アップグレードガイド:Laravel 11からLaravel 12へ

ステップ1composer.jsonを更新します。

json
{
    "require": {
        "php": "^8.2",
        "laravel/framework": "^12.0",
        "nesbot/carbon": "^3.0"
    }
}

ステップ2 — Composerアップデートを実行します。

bash
composer update

ステップ3 — エッジケースを確認します。

  1. Concurrency::run で連想配列を使用した場合、キー付きの結果が返されるようになりました
  2. ローカルディスク のデフォルトがstorage/appからstorage/app/privateに変更されました
  3. Carbon 2 の呼び出しをCarbon 3のAPIに更新する必要があります
  4. スキーマメソッド がクロススキーマの結果を返すようになりました
  5. 名前付き引数 を使用したLaravelメソッドの呼び出しは、パラメーター名が変更された場合に影響を受ける可能性があります

アップグレード作業はほとんどのプロジェクトで数分以内に完了します。ただし、Carbon 2のミュータブルメソッドに依存したコードが存在する場合は、事前にテストスイートを実行し、日付操作の挙動変化を確認することが推奨されます。

2026年版 Laravel 12 面接対策:頻出質問と回答のポイント

ジュニアレベルの質問

Laravel 12のスターターキットはBreezeと比較して何が変わりましたか?

BreezeとJetstreamは既存のプロジェクトへのインストールが必要でした。Laravel 12のスターターキットは、すべての認証コードがアプリケーション内に直接含まれた完全な新規プロジェクトを生成します。認証ロジックがパッケージ内に隠蔽されないため、開発者はコードの全体像を把握しやすくなっています。

php
// コンテナが依存関係を自動的に解決する
class OrderService
{
    public function __construct(
        private PaymentGateway $gateway,  // 自動解決
        private int $retryLimit = 3       // Laravel 12ではデフォルト値が適用される
    ) {}
}

ミドルレベルの質問

Laravelにおけるミドルウェアの仕組みと、最近のバージョンでの変更点について説明してください。

ミドルウェアはHTTPリクエストのフィルタリング機構であり、認証チェック、CORS設定、レートリミットなどの横断的関心事を処理します。Laravel 12では、ミドルウェアのグループ化やエイリアス設定の方法が整理され、アプリケーションのbootstrap/app.phpで一元的に管理できるようになっています。

php
// キューへジョブをディスパッチする
use App\Jobs\ProcessInvoice;

ProcessInvoice::dispatch($order)
    ->onQueue('invoices')
    ->delay(now()->addMinutes(5));

シニアレベルの質問

Laravelアプリケーションにおいて、リポジトリパターンとEloquent直接利用を比較してください。

リポジトリパターンはデータアクセス層を抽象化し、テスタビリティと柔軟性を向上させます。一方で、Eloquentの直接利用はLaravelの設計思想に沿った方法であり、コード量を削減できます。プロジェクトの規模やチームの方針に応じた選択が重要です。面接では、どちらが正解かではなく、トレードオフを理解しているかが評価されます。

Laravel 12アプリケーションをLaravel 13へのアップグレードに備えるには、どのような準備が必要ですか?

Laravel 13はLaravel 12からの破壊的変更がゼロであるため、技術的な準備は最小限で済みます。ただし、テストカバレッジの確保、非推奨機能の排除、依存パッケージの互換性確認は標準的なベストプラクティスとして実施すべきです。

面接対策のポイント

2026年の面接では、Laravelバージョン間のアップグレードパスに関する質問が増加しています。Laravel 11から12、そして13への移行チェーンと、破壊的変更ゼロの設計哲学について理解していることは、理論的な知識だけでなく実務経験があることを示す指標となります。

Laravel 12 vs Laravel 13:チームは今アップグレードすべきか

| 項目 | Laravel 12 | Laravel 13 | |---------|-----------|------------| | PHP要件 | 8.2 - 8.5 | 8.3 - 8.5 | | スターターキット | React/Vue/Svelte/Livewire | 同左 + チームマルチテナンシー | | AI SDK | ベータ版(laravel/ai) | 安定版、本番環境対応 | | ベクトル検索 | 未対応 | pgvectorネイティブサポート | | パスキー | WorkOS経由のみ | Fortifyにネイティブ搭載 | | Laravel 11からの破壊的変更 | 最小限 | Laravel 12からはゼロ | | バグ修正期限 | 2026年8月 | 2027年第3四半期 |

Laravel 13で追加されたAI SDKの安定版やベクトル検索機能が必要でない場合、Laravel 12は引き続き堅実な選択肢です。ただし、サポート期限を考慮すると、2026年後半にかけてLaravel 13への移行を計画的に進めることが推奨されます。破壊的変更がゼロであるため、移行コストは極めて低く抑えられます。

まとめ

  • Laravel 12はBreezeとJetstreamを4つのモダンなスターターキットに置き換えました
  • WorkOS AuthKit統合により、ソーシャルログイン、パスキー、SSOが容易に導入可能です
  • Laravel 11からのアップグレードは、ほとんどのアプリケーションでコード変更が不要です
  • パッチリリースで配列ヘルパーやGateの改善など、利便性の高い機能が追加されました
  • 面接対策では、スターターキットの違いとアップグレードパスの理解が重要です
  • Laravel 13はネイティブAI SDK、ベクトル検索、パスキーを提供しており、要件に応じた移行計画が求められます

今すぐ練習を始めましょう!

面接シミュレーターと技術テストで知識をテストしましょう。

タグ

#laravel
#php
#laravel-12
#starter-kits
#interview

共有

関連記事