> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026年6月 Laravel アップデート

> 2026年6月のLaravelエコシステムアップデート。Bus::bulk()、Postgresトランザクションプーラー対応、MCPクライアント/サーバー、artisan devコマンド、ルートメタデータなど。

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

参照元：[Laravel June Product Updates](https://laravel.com/blog/laravel-june-product-updates)

***

## Laravel Framework

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

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

```php theme={null}
use Illuminate\Support\Facades\Bus;

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

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

PgBouncer、AWS RDS Proxy、NeonなどのトランザクションモードのPostgres接続プーラーをフレームワークレベルでサポートしました。

```php theme={null}
// config/database.php
'pgsql' => [
    'driver' => 'pgsql',
    'pooled' => true,  // プーラー経由の接続を宣言
    // ...
],
```

<Info>
  スキーマ操作やDDL文など直接接続が必要な場合は、コネクション名に`::direct`を追加するとプーラーをバイパスします。
  `DB::connection('pgsql::direct')->statement('CREATE INDEX ...')`
</Info>

フレームワークが自動的にemulated prepares、boolean binding、その他プーラーが必要とするすべての処理を行います。

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

Laravel AIエージェントがリモートMCPサーバー（HTTP経由）とローカルMCPサーバークラスのツールを利用できるようになりました。スキーマ変換、ラッピング、呼び出しがすべて自動で処理されます。

```php theme={null}
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がそれぞれカラーコード付きの出力で同時に動作します。

```bash theme={null}
php artisan dev
```

```php theme={null}
// サービスプロバイダーで追加のコマンドを登録
use Illuminate\Foundation\Console\DevCommands;

DevCommands::artisan('reverb:start', 'reverb')->orange();
DevCommands::register('stripe listen --forward-to ' . config('app.url'))->green();
```

<Tip>
  Node.jsパッケージマネージャー（npm、yarn、pnpm、bun）を自動検出します。従来の`composer dev`スクリプトを置き換えるArtisanの正式なコンベンションです。
</Tip>

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

ルートに任意のメタデータを付与できる`->metadata()`メソッドが追加されました。ルートキャッシュとも完全互換で、グループに設定したメタデータは子ルートにマージされます。

```php theme={null}
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'
```

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

リトライしても意味のない例外（不正な入力、永続的な外部障害など）に対して、再試行を抑制できるようになりました。

```php theme={null}
// 例外クラスに直接定義
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`でマイグレーションテーブルの行を省いた純粋な構造ダンプが生成できるようになりました。

```bash theme={null}
php artisan schema:dump --without-migration-data
```

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

`between()`や`unlessBetween()`の前に`timezone()`を呼び出す順序に関係なく、正しいタイムゾーンでスケジュールが動作するようになりました。

```php theme={null}
// どちらも同じ動作をする（以前は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 Cloud** | Symfonyアプリの完全サポート（Symfony 7.4 LTS・8.x、PHP 8.2〜8.5対応）、Stripe Projectsからのデプロイ・支払い対応、チームメンバーごとのSlack/メール通知設定 |
| **Laravel Forge** | 管理型Valkeyキャッシュ（ダッシュボードから作成・管理）、管理型オブジェクトストレージ、通知メールのリデザイン                                                 |
