メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://kawax.biz/llms.txt

Use this file to discover all available pages before exploring further.

はじめに

Laravel 13 は 2026年3月17日にリリースされました。毎年恒例のメジャーリリースですが、Laravel 13 は特に AI ネイティブなワークフローより安全なデフォルトより表現力豊かな開発者向け API に焦点を当てています。 破壊的変更は最小限に抑えられており、ほとんどのアプリケーションは少ない修正でアップグレードできます。一方で、Laravel AI SDK やセマンティック検索など、モダンなアプリケーション開発を大きく変える新機能が多数追加されています。
Laravel 13 のサポートポリシー: バグフィックスは 2027年 Q3 まで、セキュリティフィックスは 2028年3月17日 まで提供されます。

PHP 要件の更新

Laravel 13 では PHP 8.3 以上 が必要です。PHP 8.2 のサポートは終了しています。
バージョンPHPリリース日バグフィックス期限セキュリティフィックス期限
118.2 - 8.42024年3月12日2025年9月3日2026年3月12日
128.2 - 8.52025年2月24日2026年8月13日2027年2月24日
138.3 - 8.52026年3月17日2027年 Q32028年3月17日
PHP 8.3 の主な恩恵として、型付き定数、json_validate() 関数、#[\Override] アトリビュートなどが利用できるようになります。

主要な新機能

Laravel AI SDK

Laravel 13 の目玉機能は ファーストパーティの AI SDK です。テキスト生成、ツール呼び出しエージェント、埋め込み、音声、画像生成、ベクターストア統合を統一した API で提供します。 プロバイダーに依存しない形で AI 機能を構築しながら、Laravel らしい開発者体験を保てます。 テキスト生成 (エージェント)
use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('このセールストランスクリプトを分析してください...');

return (string) $response;
画像生成
use Laravel\Ai\Image;

$image = Image::of('キッチンカウンターの上のドーナツ')->generate();

$rawContent = (string) $image;
音声合成
use Laravel\Ai\Audio;

$audio = Audio::of('Laravelでのコーディングが大好きです。')->generate();

$rawContent = (string) $audio;
埋め込み生成
use Illuminate\Support\Str;

$embeddings = Str::of('ナパバレーのワインは最高です。')->toEmbeddings();
詳細は Laravel AI SDK ドキュメント を参照してください。

セマンティック / ベクター検索

AI SDK と連携したネイティブなベクタークエリサポートが追加されました。PostgreSQL + pgvector を使ったセマンティック検索を、クエリビルダーから直接実行できます。
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'ナパバレーの最高のワイナリー')
    ->limit(10)
    ->get();
埋め込み列の追加からクエリまで、Laravel のエコシステム内で完結できます。

JSON:API リソース

Laravel にファーストパーティの JSON:API リソースサポートが追加されました。JSON:API 仕様に準拠したレスポンスを簡単に返せるようになります。
  • リソースオブジェクトのシリアライゼーション
  • リレーションシップのインクルード
  • スパースフィールドセット
  • リンク
  • JSON:API 準拠のレスポンスヘッダー

PHP アトリビュートの拡張

Laravel 13 は PHP アトリビュートによる宣言的な設定をフレームワーク全体に拡大しました。 コントローラーへの適用
<?php

namespace App\Http\Controllers;

use App\Models\Comment;
use App\Models\Post;
use Illuminate\Routing\Attributes\Controllers\Authorize;
use Illuminate\Routing\Attributes\Controllers\Middleware;

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}
キュージョブへの適用
use Illuminate\Queue\Attributes\Tries;
use Illuminate\Queue\Attributes\Backoff;
use Illuminate\Queue\Attributes\Timeout;
use Illuminate\Queue\Attributes\FailOnTimeout;

#[Tries(3)]
#[Backoff(60)]
#[Timeout(120)]
#[FailOnTimeout]
class ProcessPodcast implements ShouldQueue
{
    // ...
}
新しく追加された主なアトリビュート:
アトリビュート用途
#[Middleware]コントローラー・メソッドへのミドルウェア適用
#[Authorize]コントローラーへのポリシーチェック
#[Tries]キュージョブの最大試行回数
#[Backoff]キュージョブのバックオフ時間
#[Timeout]キュージョブのタイムアウト時間
#[FailOnTimeout]タイムアウト時のジョブ失敗フラグ
Eloquent、イベント、通知、バリデーション、テスト、リソースシリアライゼーション API などにも追加のアトリビュートが導入されています。

キュールーティング

Queue::route(...) を使って、特定のジョブに対してデフォルトのキュー・接続ルーティングルールを一箇所で定義できるようになりました。
use App\Jobs\ProcessPodcast;
use Illuminate\Support\Facades\Queue;

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
ジョブクラスにキュー名をハードコードする必要がなくなり、インフラ設定をコードから分離できます。

キャッシュ TTL 延長

Cache::touch(...) を使って、キャッシュアイテムの値を取得・再保存することなく TTL を延長できるようになりました。
// 現在の値を変えずに TTL を 3600 秒延長
Cache::touch('expensive-computation', 3600);

セキュリティ強化

CSRF 保護の強化 (PreventRequestForgery)

CSRF ミドルウェアが VerifyCsrfToken から PreventRequestForgery にリネームされ、Sec-Fetch-Site ヘッダーを使ったリクエスト発信元の検証が追加されました。
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;

// テストでのミドルウェア除外
->withoutMiddleware([PreventRequestForgery::class]);
VerifyCsrfToken は非推奨のエイリアスとして残りますが、新しいクラス名への移行が推奨されます。

キャッシュのデシリアライゼーション制限

config/cache.phpserializable_classes オプションが追加され、デフォルトは false です。これにより APP_KEY が漏洩した場合の PHP デシリアライゼーション攻撃を防ぎます。
// config/cache.php
'serializable_classes' => [
    App\Data\CachedDashboardStats::class,
    App\Support\CachedPricingSnapshot::class,
],
キャッシュに PHP オブジェクトを保存している場合は、明示的にクラスを許可リストに追加する必要があります。

スターターキットの変更

Laravel 12 で刷新されたスターターキット(React/Vue/Livewire ベース)は Laravel 13 でも引き続き利用可能です。 Laravel 13 のリリース時期に合わせて Inertia v3 もリリースされました。主な変更点:
  • よりシンプルなレイアウト props
  • Vite 8 サポート
  • withApp コールバックの追加
  • 新しい Blade コンポーネント
Inertia v3 を使用している場合は、合わせてアップグレードを検討してください。

その他の改善点

AI アシストアップグレード (Laravel Boost)

Laravel Boost はファーストパーティの MCP サーバーです。Claude Code、Cursor、OpenCode、Gemini、VS Code などの AI エディターと連携して、/upgrade-laravel-v13 スラッシュコマンドでアップグレードを半自動化できます。
composer require laravel/boost:^2.0 --dev

コントラクトの追加

以下のコントラクトに新しいメソッドが追加されました:
コントラクト追加メソッド
Bus\DispatcherdispatchAfterResponse
Routing\ResponseFactoryeventStream (SSE サポート)
Auth\MustVerifyEmailmarkEmailAsUnverified
Queue\QueuependingSize, delayedSize, reservedSize, creationTimeOfOldestPendingJob
Cache\Store / Cache\Repositorytouch

まとめ

Laravel 13 は「少ない破壊的変更、多くの新機能」というリリースです。アップグレード作業は最小限で済む一方、特に AI SDKセマンティック検索 は現代のアプリケーション開発のあり方を変える可能性を持っています。 既存のアプリケーションを Laravel 12 から 13 へアップグレードする準備ができたら、詳細な手順は以下のガイドを参照してください。

Laravel 12 から 13 へのアップグレードガイド

破壊的変更の一覧と、ステップバイステップのアップグレード手順を解説しています。
Last modified on March 28, 2026