Laravel 2026.03.26

Laravel 13リリース!全新機能まとめとLaravel 12からのアップグレード完全ガイド

約4分で読めます

2026年3月17日にリリースされたLaravel 13の全新機能を徹底解説。AI SDK、PHP Attributes、JSON:API、ベクトル検索など注目機能のコード例付き。Laravel 12からのアップグレード手順も詳しく解説します。

2026年3月17日、Laravel 13が正式リリースされました。今回のリリースは「破壊的変更ほぼゼロ」を掲げながらも、AI SDK、PHP Attributes、JSON:API、ベクトル検索など、開発者の生産性を大きく向上させる新機能が多数追加されています。

この記事では、Laravel 13の全新機能をコード例付きで徹底解説し、Laravel 12からのアップグレード手順を詳しく紹介します。

サポート期間とPHP要件

項目Laravel 12Laravel 13
リリース日2025年2月24日2026年3月17日
PHP要件8.2 - 8.58.3 - 8.5
バグ修正2026年8月まで2027年Q3まで
セキュリティ修正2027年2月まで2028年3月まで

PHP 8.2のサポートが廃止されました。 Laravel 13を使用するには、PHP 8.3以上が必要です。アップグレード前に本番環境のPHPバージョンを必ず確認してください。

新機能1: Laravel AI SDK

Laravel 13最大の目玉機能です。テキスト生成、画像生成、音声合成、埋め込みベクトル、ツール呼び出しエージェントなど、AIに関するあらゆる機能をプロバイダー非依存の統一APIで利用できます。

対応プロバイダー: OpenAI(ChatGPT)、Anthropic(Claude)、Google Gemini、Azure、Groq、DeepSeek、Ollama

テキスト生成・エージェント

use App\Ai\Agents\SalesCoach;

// エージェントを作成してプロンプトを送信
$response = SalesCoach::make()->prompt('この営業トランスクリプトを分析して...');

return (string) $response;

画像生成

use Laravel\Ai\Image;

// テキストから画像を生成
$image = Image::of('キッチンカウンターの上のドーナツ')->generate();

$rawContent = (string) $image;

音声生成(Text-to-Speech)

use Laravel\Ai\Audio;

// テキストから音声を生成
$audio = Audio::of('Laravelでコーディングするのが大好きです。')->generate();

$rawContent = (string) $audio;

埋め込みベクトル(Embeddings)

use Illuminate\Support\Str;

// テキストをベクトルに変換
$embeddings = Str::of('ナパバレーには素晴らしいワインがあります。')->toEmbeddings();

AI SDKはLaravel 13と同時にベータから正式版に昇格しました。composer require laravel/aiでインストールできます。OpenAI、Claude、Geminiなどを自由に切り替えられるため、ベンダーロックインを避けられます。

Laravelの開発・保守でお困りですか?

アップグレード代行・機能追加・パフォーマンス改善など、お気軽にご相談ください

無料で相談する

新機能2: PHP Attributes(属性構文)

開発者向けの最大のQOL改善です。従来のクラスプロパティ宣言の代わりに、**ネイティブPHP属性(Attributes)**を使って設定を記述できるようになりました。15箇所以上で対応しており、完全にオプションです。

コントローラーでの使用例

<?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;

#[Tries(3)]
#[Backoff([10, 30, 60])]
#[Timeout(120)]
class ProcessPodcast implements ShouldQueue
{
    public function handle(): void
    {
        // ジョブの処理
    }
}

対応範囲

対象使える属性の例
Eloquentモデル#[Table], #[Fillable], #[Hidden]
コントローラー#[Middleware], #[Authorize]
キュージョブ#[Tries], #[Backoff], #[Timeout], #[FailOnTimeout]
イベント属性ベースのリスナー登録
通知属性ベースの設定
バリデーション属性ベースのルール定義
テスト属性ベースのテスト設定

新機能3: JSON:API サポート

JSON:API仕様に準拠したAPIを簡単に構築できるファーストパーティ機能が追加されました。

主な機能

  • リソースオブジェクトのシリアライゼーション - モデルをJSON:API形式に自動変換
  • リレーションシップインクルージョン - ?include=author,commentsのサポート
  • スパースフィールドセット - ?fields[articles]=title,bodyで返却フィールドを制限
  • リンク管理 - self/relatedリンクの自動生成
  • JSON:API準拠ヘッダー - Content-Typeなどを自動設定

JSON:APIはRESTful APIの標準仕様の一つで、フロントエンド(React、Vue等)との連携が容易になります。これまでサードパーティパッケージが必要でしたが、Laravel 13でファーストパーティになりました。

新機能4: ベクトル検索(Semantic Search)

PostgreSQL + pgvectorを使ったセマンティック検索がネイティブサポートされました。AI SDKのEmbeddings機能と連携して、意味ベースの検索を簡単に構築できます。

// テキストの意味で類似ドキュメントを検索
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'ナパバレーのベストワイナリー')
    ->limit(10)
    ->get();

「キーワード一致」ではなく「意味の類似性」で検索できるため、ユーザーが正確なキーワードを知らなくても関連コンテンツを見つけられます。RAG(検索拡張生成)アプリケーションの構築にも最適です。

新機能5: キュールーティング

Queue::route()メソッドにより、ジョブクラスごとのキュー設定をサービスプロバイダーで一元管理できるようになりました。

// AppServiceProvider等で一箇所にまとめて定義
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
Queue::route(SendNewsletter::class, connection: 'sqs', queue: 'emails');
Queue::route(GenerateReport::class, connection: 'redis', queue: 'reports');

これまでは各ジョブクラス内で$connection$queueプロパティを個別に設定する必要がありましたが、インフラ設定とビジネスロジックを分離できるようになります。

新機能6: Cache::touch()

キャッシュのTTL(有効期限)を値を再取得・再保存せずに延長できるようになりました。

// キャッシュの有効期限を延長(値はそのまま)
Cache::touch('user-session-123');

// 成功時true、キーが存在しない場合false
if (Cache::touch('user-session-123')) {
    // TTLが延長された
}

新機能7: リクエスト偽造防止の強化

CSRFミドルウェアがVerifyCsrfTokenから**PreventRequestForgeryにリネームされ、Sec-Fetch-Siteヘッダーを使ったオリジン認識リクエスト検証**が追加されました。

テストやルート定義でCSRFミドルウェアを除外している場合、クラス名の変更が必要です。ただし、旧名は廃止予定エイリアスとして残るため、すぐに壊れることはありません。

// Laravel 12
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
->withoutMiddleware([VerifyCsrfToken::class]);

// Laravel 13(推奨)
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;
->withoutMiddleware([PreventRequestForgery::class]);

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

推定所要時間は約10分です。以下の手順に沿って進めてください。

composer.jsonの依存関係を更新
`laravel/framework`を`^13.0`、`laravel/tinker`を`^3.0`、`phpunit/phpunit`を`^12.0`に更新します。
Composerアップデートを実行
`composer update`を実行して依存関係を更新します。
CSRF関連の確認
テストやルートで`VerifyCsrfToken`を参照している箇所があれば`PreventRequestForgery`に変更します。
キャッシュプレフィックスの確認
必要に応じて`.env`で`CACHE_PREFIX`、`REDIS_PREFIX`、`SESSION_COOKIE`を明示設定します。
serializable_classesの確認
キャッシュにPHPオブジェクトを保存している場合、`config/cache.php`で`serializable_classes`に許可クラスを指定します。
テスト実行
`php artisan test`を実行し、全テストが通ることを確認します。

composer.jsonの変更箇所

{
    "require": {
        "php": "^8.3",
        "laravel/framework": "^13.0",
        "laravel/tinker": "^3.0"
    },
    "require-dev": {
        "phpunit/phpunit": "^12.0"
    }
}

キャッシュプレフィックスの互換設定

Laravel 13ではキャッシュキーのデフォルト区切り文字がアンダースコアからハイフンに変更されました。既存のキャッシュを無効にしたくない場合は、.envで明示的に設定してください。

# .envに追加(Laravel 12の挙動を維持する場合)
CACHE_PREFIX=laravel_cache_
REDIS_PREFIX=laravel_database_
SESSION_COOKIE=laravel_session

Laravel Boostによる自動アップグレード

Laravel公式のMCPサーバー「Laravel Boost」を使えば、Claude CodeやCursor等でコマンド一発でアップグレードできます。

# Laravel Boostをインストール
composer require laravel/boost:^2.0 --dev

# Claude Code等で以下を実行
/upgrade-laravel-v13

アップグレード時の注意点チェックリスト

その他の細かい変更点

低〜非常に低影響の変更

Nullable型パラメータのデフォルト値が正しく尊重されるようになりました。`Container::call(function (?Carbon $date = null) { ... })`でnullが返されます(12ではインスタンスが注入されていた)。
明示的ドメインを持つルートが、ドメインなしルートより優先されるようになりました。
`$exceptionOccurred`(boolean)が`$exception`(Exception|null)に変更されました。
シリアライズ・デシリアライズ時にeager-loadedリレーションが復元されるようになりました。
`JSON_UNESCAPED_UNICODE`がデフォルト有効になり、日本語等がそのまま出力されます。
「Reset Password Notification」から「Reset your password」に変更されました。
モデルのbootメソッド中に新しいモデルインスタンスを作成するとLogicExceptionがスローされるようになりました。
`$connection`プロパティが`$connectionName`にリネームされました。
JOIN付きDELETEでORDER BY/LIMITが正しくコンパイルされるようになりました。
カスタムピボットモデルのテーブル名推論が複数形になりました。明示的にテーブル名を指定することで対応できます。

よくある質問

A
公式の推定は約10分です。破壊的変更がほぼないため、ほとんどのアプリケーションではcomposer.jsonの更新とcomposer updateの実行だけで完了します。
A
いいえ。Laravel 13はPHP 8.3以上が必須です。PHP 8.2を使い続ける場合はLaravel 12(セキュリティ修正2027年2月まで)をご利用ください。
A
いいえ。AI SDKはオプションのパッケージです。必要な場合のみ`composer require laravel/ai`でインストールしてください。
A
いいえ。PHP Attributesは完全にオプションで後方互換性があります。従来のプロパティ宣言方式も引き続き使用できます。
A
デフォルトのキャッシュプレフィックスが変わるため、`.envで`明示的にプレフィックスを設定しないと、既存のキャッシュキーにアクセスできなくなる可能性があります。

Laravelの開発・保守でお困りですか?

アップグレード代行・機能追加・パフォーマンス改善など、お気軽にご相談ください

無料で相談する

この技術、御社の業務にも活かせます

業務システム開発

Laravelを使った業務システムの構築・改修を20年以上の経験でサポートします

200件以上の制作実績 顧客満足度97% 初回相談無料

※ 通常1営業日以内にご返信します

まとめ

Laravel 13は破壊的変更を最小限に抑えつつ、AI時代に対応した強力な新機能を多数追加したリリースです。

特にAI SDKとベクトル検索は、これからのWebアプリケーション開発に大きなインパクトを与えるでしょう。PHP Attributesによるコードの可読性向上も、日々の開発体験を確実に改善してくれます。

アップグレードは約10分で完了するので、ぜひ早めに移行して新機能を活用してみてください。

この記事をシェア

Laravelの開発・運用、プロに任せませんか?

システム構築からバージョンアップまで、経験豊富なエンジニアがサポートします。 初回相談は無料です。

※ 1営業日以内にご返信いたします

この技術でお困りなら

無料でプロに相談できます

相談する
AIに無料相談