メインコンテンツへスキップ
2026年4月はフルスタックのパスワードレス認証がLaravelの標準機能となり、バースト的なジョブディスパッチを制御するDebounceableジョブ、MCP UIアプリのサポートなど実用的な機能が多数追加されました。 参照元:Laravel April Product Updates

Laravel Framework

Debounceable Queued Jobs

バースト的なワークロードに対するクリーンな解決策。#[DebounceFor]アトリビュートを使うと、指定時間内の複数ディスパッチを1つにまとめ、最後のディスパッチのみが実行されます。ShouldBeUniqueの逆の発想で、デバウンスウィンドウ内の連続更新を効率化します。
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\Attributes\DebounceFor;

#[DebounceFor(30)]
class RebuildSearchIndex implements ShouldQueue
{
    // ユーザーが30秒以内に10回ドキュメントを更新しても
    // インデックス再構築は1回だけ実行される
}

// 呼び出し側でもデバウンス可能(クラス変更不要)
RebuildSearchIndex::dispatch()->debounceFor(seconds: 30);
デバウンスされたジョブはJobDebouncedイベントを発火するので、スキップされたジョブを可視化できます。

ヘルスルートのJSONレスポンス対応

APIのみのアプリで/upからHTMLをスクレイピングする必要がなくなりました。組み込みヘルスルートがJSONリクエストに対してJSONを返すようになります。
{ "status": "Application is up" }
ロードバランサー、アップタイムモニター、オーケストレーターの連携が簡単になります。設定変更は不要です。

JsonFormatter

JsonFormatterにより、カスタム例外のcontext()データが構造化ログに確実に記録されるようになりました。例外チェーン内の前の例外のコンテキストも含まれます。
// config/logging.php
'formatter' => Illuminate\Log\Formatters\JsonFormatter::class,

prefersJsonResponses()

APIアプリでbootstrap/app.phpに1行追加するだけで、広いAcceptヘッダーをJSONとして扱い、認証リダイレクト・バリデーションエラー・例外ページがクライアント向けに適切にシリアライズされます。
return Application::configure(basePath: dirname(__DIR__))
    ->withRouting(...)
    ->prefersJsonResponses()
    ->create();

Cloudflare Email Serviceサポート

CloudflareのEmail ServiceがLaravelのメーラーとして正式サポートされました。
// config/services.php
'cloudflare' => [
    'account_id' => env('CLOUDFLARE_ACCOUNT_ID'),
    'token' => env('CLOUDFLARE_TOKEN'),
],

Redis Clusterの完全サポート

AWS ElastiCache ServerlessなどのRedis Cluster環境でのCROSSSLOTエラーが解消されました。Laravelのキュー、ConcurrencyLimiterがCluster接続を検出すると、キュー名を自動的にハッシュタグでラップします。
queues:{default}          # "default"スロット
queues:{default}:delayed  # 同じスロット
queues:{default}:reserved # 同じスロット

Queue ジョブ検査メソッド

ジョブの内容をDBを直接覗かずに確認できる3つのメソッドが追加されました。
Queue::pendingJobs();   // 待機中のジョブ
Queue::delayedJobs();   // 遅延ジョブ
Queue::reservedJobs();  // 処理中のジョブ

// InspectedJobインスタンスにアクセス
Queue::reservedJobs('high-priority')->first()->name;
// => 'App\Jobs\SendEmail'

Form Request Strict Mode

未宣言のフィールドがバリデーションを通過しないよう制御できます。rules()で宣言されていない受信フィールドはバリデーション失敗になります。
// AppServiceProvider
public function boot(): void
{
    FormRequest::failOnUnknownFields(! app()->isProduction());
}

Passkeys(パスワードレス認証)

パスワードレス認証がファーストパーティのスタック全体で実現しました。
  • laravel/passkeys(サーバーサイド): マイグレーション、ログイン/確認/クレデンシャル管理のルート、WebAuthnアクション、イベントを提供
  • @laravel/passkeys(クライアントサイド): React・Vue・Svelteの各ヘルパーで、ブラウザのWebAuthnセレモニーを処理
  • Fortify統合: Features::passkeys()で有効化するだけで、Fortifyアプリが同じエンドポイントと契約を利用可能
// config/fortify.php
'features' => [
    Features::passkeys(),
],

MCP UI App サポート

MCPツールがテキストのみでなく、完全なサンドボックス化されたHTMLアプリをiframe内でレンダリングできるようになりました。
php artisan make:mcp-app-resource DashboardApp
class DashboardApp extends AppResource
{
    #[RendersApp]
    public function handle(Request $request): Response
    {
        return Response::view('mcp.dashboard-app', [
            'title' => 'Dashboard',
        ]);
    }
}

Inertia・エコシステム

  • useHttpフック: onHttpExceptiononNetworkErrorコールバックが追加
  • Laravel Echo Svelte 5アダプター: useEcho runeでSvelteからリアルタイム機能を利用可能
  • Dusk: clickOnceEnabled()clickOnceVisible()でフレイキーなテストを防止
  • Horizon: Redis Clusterの完全サポート(AWS ElastiCache Serverless対応)
  • VS Code拡張: Laravel 13の新アトリビュートのオートコンプリート・ホバー・ナビゲーション対応

Laravel Cloud・Laravel Forge

製品主なアップデート
Laravel Cloudモバイル対応のフルレスポンシブUI、エッジネットワーク強化(トップIP/パス表示、ファイアウォール・キャッシュルール変換)
Laravel ForgePHP 8.5サポート、複数SSLサーバーのサポート、証明書更新アラート
最終更新日 2026年7月5日