メインコンテンツへスキップ
2026年6月はLaravel CloudがSymfonyアプリをサポートし、Forgeに管理型Valkeyキャッシュとオブジェクトストレージが追加。フレームワークはバルクジョブディスパッチ、Postgresプーラー対応、MCPクライアント/サーバーなど充実したアップデートが届きました。 参照元:Laravel June Product Updates

Laravel Framework

Bus::bulk() — バルクジョブディスパッチ

大量のジョブを1回のデータベースINSERTで登録できるようになりました。キュー・コネクションごとにバルクINSERTが行われるため、1件ずつINSERTするコストが不要になります。
use Illuminate\Support\Facades\Bus;

Bus::bulk([
    new ProcessOrder($order1),
    new ProcessOrder($order2),
    new ProcessOrder($order3),
    // 数千件でも効率的
]);

Postgresトランザクションプーラーサポート

PgBouncer、AWS RDS Proxy、NeonなどのトランザクションモードのPostgres接続プーラーをフレームワークレベルでサポートしました。
// config/database.php
'pgsql' => [
    'driver' => 'pgsql',
    'pooled' => true,  // プーラー経由の接続を宣言
    // ...
],
スキーマ操作やDDL文など直接接続が必要な場合は、コネクション名に::directを追加するとプーラーをバイパスします。 DB::connection('pgsql::direct')->statement('CREATE INDEX ...')
フレームワークが自動的にemulated prepares、boolean binding、その他プーラーが必要とするすべての処理を行います。

MCPクライアント・サーバーツールサポート

Laravel AIエージェントがリモートMCPサーバー(HTTP経由)とローカルMCPサーバークラスのツールを利用できるようになりました。スキーマ変換、ラッピング、呼び出しがすべて自動で処理されます。
class MyAgent extends Agent
{
    public function tools(): array
    {
        return [
            // リモートMCPサーバーのツールを利用
            McpClient::tools('https://mcp.example.com'),
            // ローカルMCPサーバーのツールを利用
            McpServer::tools(MyMcpServer::class),
        ];
    }
}

artisan dev コマンド

すべての開発プロセスを1つのコマンドで起動できるartisan devが追加されました。サーバー、キューワーカー、ログテーリング、Viteがそれぞれカラーコード付きの出力で同時に動作します。
php artisan dev
// サービスプロバイダーで追加のコマンドを登録
use Illuminate\Foundation\Console\DevCommands;

DevCommands::artisan('reverb:start', 'reverb')->orange();
DevCommands::register('stripe listen --forward-to ' . config('app.url'))->green();
Node.jsパッケージマネージャー(npm、yarn、pnpm、bun)を自動検出します。従来のcomposer devスクリプトを置き換えるArtisanの正式なコンベンションです。

ルートメタデータサポート

ルートに任意のメタデータを付与できる->metadata()メソッドが追加されました。ルートキャッシュとも完全互換で、グループに設定したメタデータは子ルートにマージされます。
Route::metadata(['head' => ['robots' => ['noindex'], 'author' => 'Taylor']])
    ->group(function () {
        Route::get('/users', [UserController::class, 'index'])
            ->metadata(['head' => ['title' => 'Users']]);
    });

// コントローラーやミドルウェアからアクセス
$request->route()->getMetadata('head.title');          // 'Users'
$request->route()->getMetadata('head.author', 'Taylor'); // 'Taylor'

再試行しない例外ハンドラー

リトライしても意味のない例外(不正な入力、永続的な外部障害など)に対して、再試行を抑制できるようになりました。
// 例外クラスに直接定義
class InvalidInputException extends RuntimeException
{
    public function retry(): bool
    {
        return false;
    }
}

// bootstrap/app.php でも設定可能
->withExceptions(function (Exceptions $exceptions) {
    $exceptions->dontRetry(InvalidInputException::class);
})

schema:dump の —without-migration-data フラグ

schema:dumpでマイグレーションテーブルの行を省いた純粋な構造ダンプが生成できるようになりました。
php artisan schema:dump --without-migration-data

between()/unlessBetween()のタイムゾーン修正

between()unlessBetween()の前にtimezone()を呼び出す順序に関係なく、正しいタイムゾーンでスケジュールが動作するようになりました。
// どちらも同じ動作をする(以前はbetweenを先に書くとUTCが使われてしまう問題があった)
$schedule->command('foo')->timezone('Europe/Rome')->between('10:00', '12:00');
$schedule->command('foo')->between('10:00', '12:00')->timezone('Europe/Rome');

その他のフレームワーク変更

  • Bus::bulk()のトレイト対応: トレイトにキューアトリビュートを定義可能
  • MariaDBベクターインデックス: MariaDBでベクターインデックスのサポート
  • attachFromStorage()ヘルパー: 通知のMailMessageにストレージから添付ファイルを追加
  • Cache::rememberWithState(): ステートを持つキャッシュサポート
  • 平行テスト用メンテナンスモードドライバー: arrayドライバーで各プロセスが独立したメンテナンス状態を持てる
  • whenFilledEnum(): Enumを使ったフィールドの条件付き処理
  • JSON SchemaのanyOfサポート: バリデーションでJSON SchemaのanyOfが使用可能

Inertia

  • Client\Request::uri(): クライアントリクエストのURI取得
  • アンカーのtarget属性対応: <Link>コンポーネントでtarget="_blank"などが使用可能
  • フォームのasyncオプション: フォームコンポーネントで非同期送信をサポート
  • titleCallbackにページ情報: タイトルコールバックにページデータが渡される

Laravel Cloud・Laravel Forge

製品主なアップデート
Laravel CloudSymfonyアプリの完全サポート(Symfony 7.4 LTS・8.x、PHP 8.2〜8.5対応)、Stripe Projectsからのデプロイ・支払い対応、チームメンバーごとのSlack/メール通知設定
Laravel Forge管理型Valkeyキャッシュ(ダッシュボードから作成・管理)、管理型オブジェクトストレージ、通知メールのリデザイン
最終更新日 2026年7月5日