1月の Laravel はフロントとAIが同時に動いた。今週公開された Livewire 4 に合わせて Filament 5 が出荷され、Laravel は公式ドキュメントに AI 支援開発のセクションを新設した。コアは 12.44 から 12.49 まで6リリース。HTTP クライアントの afterResponse()、JSON:API リソース、各所での enum 対応など、地味だが実務で効く追加が続いた。Claude Code 連携ツールも豊作で、Boost の MCP 対応から簡素化プラグイン、Herd worktrees スキルまで一通りそろった。
出典はすべて Laravel News の各記事。バージョン番号やメソッド名は原文に合わせている。
TL;DR
- Filament 5 が登場。主目的は Livewire 4 対応で、v4 から v5 への機能差は Livewire 4 サポートのみ。
-
Livewire 4 が登場。単一ファイルコンポーネント、Islands、
wire:transition、楽観的UIなど過去最大の刷新。 - Laravel が公式AIドキュメントを公開。Laravel Boost を基盤に、Claude Code 連携ツールが一気に増えた。
- コアは 12.44〜12.49。
afterResponse()、JSON:API リソース、Cache::withoutOverlapping()、hasSole()などが目立つ。 - DebugBar系のメジャー更新、Statamic 6 ベータ、キュー運用パッケージ(Balanced Queue、Fuse)も出た。
今月の目玉1:Filament 5 と Livewire 4
1月はフロント周りのメジャー更新が重なった。先に位置づけを整理しておく。
Livewire 4:単一ファイルコンポーネントと Islands
Livewire 4 が登場した。過去最大のリリースで、最も目に見える変化はコンポーネントの書き方だ。PHP クラスと Blade ファイルを行き来する代わりに、PHP と Blade、CSS、JS を1ファイルにまとめられる。これが php artisan make:livewire のデフォルトになった。
<?php // resources/views/components/⚡counter.blade.php
use Livewire\Component;
new class extends Component {
public $count = 0;
public function increment()
{
$this->count++;
}
};
?>
<div>
<h1>{{ $count }}</h1>
<button wire:click="increment">+</button>
</div>
<style>
/* Scoped CSS... */
</style>
<script>
/* Component JavaScript... */
</script>
目玉機能は Islands。コンポーネント内に、独立して再描画される隔離領域を作れる。
<div>
@island
<div>
Revenue: {{ $this->revenue }}
<button wire:click="$refresh">Refresh</button>
</div>
@endisland
<div>
<!-- This won't re-render when the island updates -->
Other content...
</div>
</div>
「Refresh」を押すと island だけが再描画される。利点は DOM 更新にとどまらない。island を computed property と組み合わせると、その island が必要とするデータだけが取得される。3つの island がそれぞれ別の computed property を参照していれば、1つをリフレッシュしたときに走るのはその island のクエリだけになる。データベースからレンダリングされた HTML まで、オーバーヘッドを部分単位に切り分けられる。
リリースに先立って予告された wire:transition ディレクティブは、ブラウザの View Transitions API を使ってハードウェアアクセラレーションされたアニメーションを追加する。
@if ($showAlertMessage)
<div wire:transition>
<!-- Message smoothly fades in/out -->
</div>
@endif
ほかにも、外部ライブラリ不要のドラッグ&ドロップ(wire:sort)、サーバー往復なしで即座に画面を更新する楽観的UI(wire:show / wire:text / wire:bind)、#[Json] メソッドや Interceptors といった JavaScript 連携ツールが標準搭載された。後方互換性は強く保たれており、クラスベースのコンポーネントも引き続き完全にサポートされる。インストールは次のとおり。
composer require livewire/livewire:^4.0
Filament 5:Livewire 4 に追従するためのメジャー
Filament v5 がリリースされた。発表によれば、v5 は主に、既存の Filament v4 アプリケーションに破壊的変更を持ち込むことなく Livewire v4 をサポートするために存在する。Livewire v4 対応を新たなメジャーとして出荷することで、Livewire に明示的に依存していないプロジェクトは通常のアップグレード時の予期しない破損を避けられる。チームは、v4 と v5 の間に Livewire v4 対応を超える機能的な変更はなく、新機能は今後も両メジャーに提供され続けると強調している。v5 と同時に、AI 支援ワークフローで Filament アプリの実装計画を生成するプレミアムプラグイン Filament Blueprint も登場した。
その直前には Filament v4.5 も出ている。リッチエディタのメンションや画像リサイズ、ファイルアップロードのアスペクト比強制が目立つ。便利なのが、要求した比率に合わない画像をアップロードすると簡易クロップエディタが自動で開く automaticallyOpenImageEditorForAspectRatio() だ。
use Filament\Forms\Components\FileUpload;
FileUpload::make('banner')
->image()
->imageAspectRatio('16:9')
->automaticallyOpenImageEditorForAspectRatio()
スキーマ内アクションをネットワークリクエストなしでブラウザ上で実行する jsAction()、保存対象から確実に外す saved()、2FA セットアップを簡略化するトレイト群(InteractsWithAppAuthentication ほか)も加わった。
今月の目玉2:Laravel が公式AIドキュメントを公開
Laravel が公式ドキュメントに AI Assisted Development セクションを新設した。Taylor は、Laravel の意見の強い設計が AI 支援開発と相性が良い理由を、規約がスタック全体から曖昧さを取り除くからだと説明している。コントローラ、ジョブ、メール、キュー、キャッシュ、スケジューリングがいずれも明確なパターンに従うため、AI エージェントは推測をやめてクリーンなコードを生み出せる、という主張だ。
このドキュメントは AI を意識した開発の基盤として Laravel Boost を位置づける。Boost は、設定やインストール済みパッケージの調査、ルートやスキーマの探索、ドキュメント検索 API、Tinker 経由の安全なコード実行といったツール群を AI エージェントに公開する。MCP 互換ツールとして Claude Code、Cursor、VS Code、PhpStorm、Gemini と統合できる。
これに前後して、Claude Code 連携のツールが一気に増えた。
-
Laravel Boost の MCP プロトコル対応:Claude Code を含む新しいエージェントがレガシーな MCP プロトコルのサポートを終了したため、Boost が直近リリースで新プロトコルに対応した。
composer require laravel/boost:1.8.9 -W --devで更新できる。 -
Claude Code 簡素化プラグイン:Taylor が公開した
laravel/claude-code。Boris Cherny らがオープンソース化したコード簡素化エージェントを Laravel/PHP の慣習に合わせて移植したもの。/plugin install laravel-simplifier@laravelで導入する。 - Laravel Boost v1.8.10:Code Simplifier プロンプトと、Livewire v3 から v4 へのアップグレード支援プロンプトを追加。
-
Laravel Boost v2.0:新しい Skills システムを搭載。GitHub から AI スキルを取得してインストールする
boost:add-skillコマンドが入った。
# GitHub から AI スキルを取得してインストール
php artisan boost:add-skill vercel-labs/agent-skills
-
Boost でのパッケージガイドライン/スキル導入:Laravel パッケージ内のガイドラインとスキルを自動検出し、
boost:install時に読み込む。メンテナはresources/boost/skills/{skill-name}/SKILL.mdのパターンで同梱できる。 -
Laravel Altitude:TALLスタック向けの意見の強い Claude Code エージェント群(architect / database / docs / security)と
/ship/test/debugコマンド。ドキュメント参照は Boost に任せる役割分離が特徴。 -
Laravel Herd Worktree:
/laravel-herd-worktree一発で、独立したワークツリー作成、Herd への紐付け、.env 設定、依存インストール、Vite 起動までを自動化する Claude Code スキル。
論考としては、Ben Bjurstrom の「Laravel は 2026 年のバイブコーディングに最適なスタックだ」も同じ方向を向く。LLM が選択を迫られる場面ほど誤りが生まれやすく、組み込みのデフォルトを多く持つ Laravel は AI のミスの余地を減らせる、という主張だ。
Laravel コアの進化(12.44 → 12.49)
1月はコアが6リリース。新機能の粒度は小さめだが、HTTP クライアントと enum 対応、キャッシュロックあたりに実用的な追加が並んだ。
12.44:HTTP クライアントの afterResponse()
レスポンス構築後に実行されるコールバックが入った。レスポンスの検査、イベント送信、独自レスポンスクラスへの変換に使える。
return Http::acceptJson()
->withHeader('X-Shopify-Access-Token', $shopCreds->token)
->baseUrl("https://{$shopCreds->shop_domain}.myshopify.com/admin/api/2025-10/")
->afterResponse(
// Report any deprecation notices that were in the header
function (Response $response) use ($shopCreds) {
$header = $response->header('X-Shopify-API-Deprecated-Reason');
if ($header) {
event(new ShopifyDeprecationNotice($shopCreds->shop, $header);
}
})
->afterResponse(
// Map the response into our own custom response class
fn (Response $response) => new ShopifyResponse($response->toPsrResponse())
);
ほかに、テスト向けの TestResponse::assertHeaderContains()、Date ルールへの now 系メソッド(Rule::date()->andTime()->nowOrPast() など)、LocaleUpdated イベントへの直前ロケール追加も入った。
出典: https://laravel-news.com/laravel-12-44-0
12.45:JSON:API リソースと enum キーの拡充
JsonResource の代わりに JSON:API 仕様で出力する JsonApiResource が追加された。
use Illuminate\Http\Resources\JsonApi\JsonApiResource;
class UserResource extends JsonApiResource {}
make:resource に --json-api フラグを付けて生成できる。あわせてセッションキーとキャッシュキーで BackedEnum を直接渡せるようになり、->value を書かずに済むよう統一が進んだ。
// Before
session()->put(CheckoutSession::Cart->value, $items);
// After (>=12.45)
session()->put(CheckoutSession::Cart, $items);
バイナリ値を扱う AsBinary キャスト、クラウドストレージからの添付ヘルパー fromCloudStorage()、変数名は見えたまま値だけ暗号化する env:encrypt --readable フラグも加わった。
出典: https://laravel-news.com/laravel-12-45-0
12.46:配列ヘルパーと enum 対応の Gate 認可
値ベースで配列をフィルタする Arr::onlyValues() / Arr::exceptValues() と、複数要素の有無を判定する Collection::containsManyItems() が入った。
$roles = ['admin', 'editor', 'viewer', 'guest'];
$allowedRoles = Arr::onlyValues($roles, ['admin', 'editor']);
// Result: [0 => 'admin', 1 => 'editor']
12.45.2 では Gate の has() が UnitEnum を受け付けるようになり、型安全な認可チェックが書ける。
enum Abilities {
case VIEW_DASHBOARD;
case EDIT_POST;
case DELETE_USER;
}
Gate::define(Abilities::VIEW_DASHBOARD, fn($user) => $user->isAdmin());
if (Gate::has(Abilities::VIEW_DASHBOARD)) {
// Type-safe ability check - works with UnitEnum!
}
3バージョンとも後方互換で、composer update laravel/framework だけで導入できる。
出典: https://laravel-news.com/laravel-12-46-0
12.47:重複実行を防ぐ Cache::withoutOverlapping()
ロックを取得してブロックする定番パターンを1行で書けるメソッドが入った。
// Before
Cache::lock('processing-order-' . $orderId)
->block(10)
->get(function () use ($orderId) {
// Process the order
});
// After
Cache::withoutOverlapping('processing-order-' . $orderId, function () use ($orderId) {
// Process the order - guaranteed no concurrent execution
}, seconds: 10);
キュージョブやスケジュールタスクの二重実行防止に効く。ほかに、親ビューの変数を引き継がない @includeIsolated Blade ディレクティブ、Illuminate\Notifications\Notification の macroable 化、PendingBatch::onConnection() の enum 対応、JSON API の循環参照の重複排除なども加わった。
出典: https://laravel-news.com/laravel-12-47-0
12.48:BatchFinished イベントと HTTP/CORS の小改善
バッチが失敗なく完了したときに発火する BatchFinished イベントが追加された(既存の BatchFailed を補完)。
use Illuminate\Bus\Events\BatchFinished;
Event::listen(function (BatchFinished $event) {
$batch = $event->batch;
Log::info("Batch {$batch->id} completed successfully");
});
HTTP クライアントの json(flags: ...) による JSON デコードフラグ指定、HandleCors::skipWhen() による条件付きスキップ、並列テスト時のコンパイル済みビューのプロセス単位分離も入った。なお、このリリースで一度入った「クエリビルダの式エイリアス」は、次の 12.49 でリバートされている点に注意。
出典: https://laravel-news.com/laravel-12-48-0
12.49:hasSole() コレクションメソッド
条件に一致する項目がちょうど1つだけ含まれるかを判定する hasSole() が追加され、従来の containsOneItem() を非推奨化した。sole() と同じフィルタシグネチャをサポートする。
$collection->hasSole();
$collection->hasSole(fn ($item) => $item->active);
$collection->hasSole('status', 'pending');
$collection->hasSole('age', '>=', 21);
リソースコレクションをフルーエントに設定できる preserveKeys()、php artisan down --retry の日時文字列対応、Session の now() / flash() と Cache::flexible() / withoutOverlapping() の enum キー対応、Arr::dot() のメモリリーク修正も含まれる。
出典: https://laravel-news.com/laravel-12-49-0
コア早見表
| バージョン | 目玉 | 種別 |
|---|---|---|
| 12.44 | HTTP クライアントの afterResponse() / assertHeaderContains()
|
機能追加 |
| 12.45 |
JsonApiResource / セッションとキャッシュキーの enum 対応 |
機能追加 |
| 12.46 |
Arr::onlyValues() / Gate has() の UnitEnum 対応 |
機能追加 |
| 12.47 |
Cache::withoutOverlapping() / @includeIsolated
|
機能追加 |
| 12.48 |
BatchFinished イベント / HandleCors::skipWhen()
|
機能追加 |
| 12.49 |
hasSole()(containsOneItem() 非推奨化) / preserveKeys()
|
機能追加 |
Livewire 4 対応では IDE 側も動いた。Laravel VS Code 拡張 v1.4.3 が Route::livewire(...) や <livewire:*> の補完に対応した(Livewire 3 互換も維持)。その前の v1.4.2 は Docker サポートと DDEV での Pint 修正、make コマンドのパレット実行(v1.4.0 以降)も入っている。フロント側では Inertia.js 2.3.7 が機微フィールドを履歴に残さない dontRemember() を、Inertia v2.3.10 が cancelAll の async/sync オプションと Firefox 等の互換性改善を加えた。CMS では Statamic 6 ベータが公開され、コントロールパネル刷新と2要素認証の標準搭載、Vue 3 移行が入った(Laravel 12 必須)。
注目パッケージ(テーマ別に厳選)
キュー・運用
- Fuse for Laravel:外部サービス障害時にキューワーカーが止まる問題を、サーキットブレーカーパターンで解決する。失敗率が閾値を超えるとリクエストを止め、ジョブをミリ秒で失敗させてキューに戻す。ジョブにミドルウェアを足すだけで導入できる。
use Harris21\Fuse\Middleware\CircuitBreakerMiddleware;
class ChargeCustomer implements ShouldQueue
{
public function middleware(): array
{
return [new CircuitBreakerMiddleware('stripe')];
}
// ...
}
- Laravel Balanced Queue:キューをユーザーやテナント単位のパーティションに分け、ローテーションで公平にワーカーへ割り当てる。Horizon 連携やユーザーごとの同時実行数制限も備える。
Eloquent とデータ構造
-
Data Block:ネストしたデータ構造や複雑な JSON を
select/where/orderByのチェーンで扱う PHP パッケージ。ドット記法での取得と設定、JSON/YAML へのエクスポートに対応。 - Laravel TurboMaker:1つの Artisan コマンドで CRUD/API モジュール一式(モデル、マイグレーション、コントローラ、ルート、テスト、ビュー、ポリシー)を生成。YAML スキーマでの定義も可能。
ユーザー管理・制限
- Laravel Invite Only:トークンベースの招待、ポリモーフィックなリレーション、自動リマインダー、イベント駆動の通知を備えたユーザー招待管理。チームや組織など任意のモデルで使い回せる。
- Laravel Waitlist:複数ウェイトリスト、ステータス管理、メール認証、自動通知に対応。ルートやビューを押し付けない設計。
-
Laravel Prohibitions:期限付きの操作制限をDBに保存し、コード変更なしで動的に適用したり解除したりできる。個別の禁止と、それをまとめた制裁を区別して管理でき、
Gate::before()と一貫して連携する。
開発支援・品質
-
Laravel Deadlock:一時的な回避策に有効期限を PHP 属性で付け、期限切れをローカルでは例外、CI ではビルド失敗として強制する。
#[Workaround]で印を付け、deadlock:listで棚卸しする。 - Laravel Vendor Cleanup:publish 済み vendor ファイルを SHA256 ハッシュで比較し、変更済み、未変更、孤立を判別する Artisan コマンド群。
- Laravel Wayfinder ベータ:PHP のコードからルート、モデル、Enum、Inertia の props などを完全型付けの TypeScript として生成する。静的解析ツール Surveyor と Ranger も同梱。
-
Pest の
withHost():ブラウザテストでサブドメインルート(Route::domain())をテストできる。マルチテナント型アプリのテストに有用。 - PHP DebugBar v3:jQuery を排した近代的UIと Tabler の SVG アイコンを採用。ウィジェットやコレクターまわりに破壊的変更が多い。
-
Laravel Debugbar v4.0.0:所有権が
fruitcake/laravel-debugbarへ移管。HTTP Client/Inertia/Octane 対応を追加し、名前空間がFruitcake\LaravelDebugbarに変わった。旧パッケージの手動削除と再インストールが必要。
AI・その他
-
Neuron AI:本番運用に耐える AI エージェントを構築する PHP フレームワーク。
Agentクラスを継承するだけでチャット履歴やツールを備えたエージェントを作れる。neuron-laravelが Laravel 統合を担う。 - FluentVox:Resemble AI の Chatterbox を Laravel 流のAPI/CLIで包んだ TTS パッケージ。音声クローンと23言語以上の多言語モデル、GPUアクセラレーションに対応。
- Radiance:任意の文字列から決定論的なメッシュグラデーションのアバターを生成する PHP ライブラリ。同じシードからは常に同一のアバターになる。
- Bagisto Visual:Bagisto 向けのテーマフレームワーク兼ビジュアルエディタ。開発者は JSON で定義し、オーナーはドラッグ&ドロップで編集する。
今月のトレンド3つ
1. フロントのメジャー更新が同時着地。 Livewire 4 の単一ファイルコンポーネントと Islands、それに追従する Filament 5、Inertia や Statamic 6 の動きが重なった。Livewire 案件を抱えるチームは、v4 の後方互換の範囲と新デフォルトを早めに押さえておきたい。
2. AI支援開発が Laravel の一級市民に。 公式 AI ドキュメントの新設で、Laravel Boost を基盤にした開発が体系化された。Boost の MCP 対応、簡素化プラグイン、Altitude、Herd worktrees スキルと、Claude Code を中心に連携ツールが一気にそろった。
3. キューの障害耐性とコスト最適化。 外部障害をサーキットブレーカーで止める Fuse、テナント単位で公平に配分する Balanced Queue、12.47 の withoutOverlapping() と、キュー運用の地に足のついた改善が並んだ。Laravel News 自身の高速化事例も同じ実務志向だ。
その他の新着
- MongoDB によるキャッシュ:すでに MongoDB を使っているなら、Redis を足さず MongoDB 自身をキャッシュストアにできる。TTL インデックスやロックの実装手順を網羅。
- Cloudflare で Laravel News を高速化:一見動的だが実態は静的なページを、Cloudflare のページキャッシュで速くする実例。非リアクティブな Livewire を Blade に置き換えれば CDN レベルで完全キャッシュできる。
- Laravel News を Forge から Cloud へ移行:本番アプリの移行を題材に、判断とデプロイ手順、落とし穴をライブ配信で解説。
まとめ
1月はフロント(Livewire 4 と Filament 5)とAI(公式ドキュメントと Boost 連携)という2つの基盤が同時に動いた月だった。コアの 12.44〜12.49 は HTTP クライアントと enum 対応、キャッシュロックの運用改善が中心。Livewire 4 は移行ポイントの整理から、公式AIドキュメントは Boost と Claude Code の社内導入から、どちらも実務に落としやすい。
このまとめは毎月続ける。詳細は各出典リンクから。