0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【2026年6月】Laravel/PHP 今月のまとめ|13.13→13.17の新機能と注目パッケージ総ざらい

0
Last updated at Posted at 2026-06-25

この1か月で Laravel 本体は21日間に5リリース(13.13→13.17)。セキュリティ修正が2件、Postgresトランザクションプーラー対応、本番監視パッケージが5本そろった。2026年6月の Laravel News を、実務で効くものに絞って総ざらいする。
新着をすべて並べると埋もれるので、コアの変更点はコード付きで深掘りし、パッケージはテーマ別に厳選、残りは末尾にリンクでまとめた。

出典はすべて Laravel News の各記事。バージョン番号やメソッド名は原文に合わせている。

TL;DR

  • コアの追加は Bus::bulk()、型付き trans()php artisan dev、ルートメタデータ、Postgresトランザクションプーラー対応。
  • 型安全(enum / JSON Schema / 型付きアクセサ)と運用性(Cloudキュー / プーラー対応)が同時に進んだ。
  • 本番監視パッケージが豊作(Watchtower / Vigilance / LaraOwl など)。監視対象で選び分けられる。
  • セキュリティ系も活発(Checkpoint の静的監査、Privacy Filter のPII検出、コア側の date_equals バイパス修正)。
  • サーバー駆動UI(Lattice)と AI ツール(Toolkit)も伸びている。

Laravel コアの進化(13.13 → 13.17)

13.13:Bus::bulk() で大量ジョブを一括ディスパッチ

多数のジョブを、接続とキューごとにグループ化してまとめてプッシュする Bus::bulk() が入った。Bus::batch() と違ってバッチ進捗をDBで追跡しないので、進捗管理が不要なら余計なオーバーヘッドなしに大量エンキューできる。

use Illuminate\Support\Facades\Bus;

Bus::bulk(array_map(fn (User $user) => new ProcessUser($user), $users));

ほかに、通知の MailMessage でストレージから直接添付できる attachFromStorage() / attachFromStorageDisk()、HTTPクライアントを PSR-18 の ClientInterface として渡せる Http::buildClient() が追加された。後者は、PSR-18 クライアントを要求するサードパーティSDKに Laravel のHTTPクライアントを渡せるので、外部APIリクエストも自前のミドルウェアスタックを通る。

$geocoder = new GeocodingService(Http::buildClient());

出典: https://laravel-news.com/laravel-13-13-0

13.14:JSON Schema を配列から復元する fromArray()

これまで JsonSchemaType オブジェクト → 配列の一方向だった。JsonSchema::fromArray() で逆方向、つまりネットワーク越しに受け取ったスキーマ配列を Type オブジェクトへ戻せるようになった。シリアライズとラウンドトリップする。

$type = JsonSchema::fromArray([
    'type' => 'object',
    'properties' => [
        'name' => ['type' => 'string', 'minLength' => 1],
        'age' => ['type' => 'integer', 'minimum' => 0],
    ],
    'required' => ['name'],
]);
// Returns an ObjectType

加えて、子クラスのキュープロパティが親から継承したキュー属性を上書きできるよう優先順位が整理された。InspectedJobqueue プロパティが付き、保留中ジョブの割り当てキューが見えるようになっている。

出典: https://laravel-news.com/laravel-13-14-0

13.15:型付き翻訳アクセサとセキュリティ修正

翻訳ヘルパは戻り型が広い。__()array|string|nulltrans()Translator|array|string を返すため、厳格な型付けや静的解析で摩擦になる。具体的な型を返す trans()->string()trans()->array() が追加された。config()request() の型付きヘルパと同じ発想だ。

public function label(): string
{
    return trans()->string($this->name);
}

public function options(): array
{
    return trans()->array($this->options_key);
}

セキュリティ修正も2件入った。

  • date_equals のバイパス修正:無効な日付文字列は null にパースされ、null == 0true になる。そのため 1970-01-01 00:00:00 のような参照日に対し、無効な日付がバリデーションを通過し得た。等価比較を厳格化して塞いだ。
  • ルートのアンシリアライズ制限:受け入れるクラスを制限し、ルートのキャッシュや解決時のオブジェクトインジェクションの攻撃面を縮小した。

ほかに Laravel Cloud 専用キュードライバ、Queue::route() での enum 利用も入った。

出典: https://laravel-news.com/laravel-13-15-0

13.16:php artisan dev で開発プロセスを束ねる

composer dev 相当の「server / queue / logs / Vite を並行起動」を、設定を composer.json ではなくアプリ側のコードに持たせた php artisan dev が入った。DevCommands 経由でサービスプロバイダから登録し、任意のArtisan/シェルコマンドを足せる。

use Illuminate\Foundation\Console\DevCommands;

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

artisan dev の登録まわりの修正が入った v13.16.1 へ上げておくこと。

リクエスト値を backed enum へ変換してからコールバックを呼ぶ whenFilledEnum() も加わった。whenFilled()tryFrom() → null チェックの3手間が1つにまとまる。

$request->whenFilledEnum('status', Status::class, function (Status $status) use ($query): void {
    $query->where('status', $status);
});

withCookies()RedirectResponse から全レスポンス種別へ昇格し、JsonResponse でも複数クッキーを一度に付与できるようになった。並列テスト向けの array メンテナンスモードドライバも追加されている。

出典: https://laravel-news.com/laravel-13-16-0

13.17:ルートメタデータと Postgres トランザクションプーラー

ルートに構造化メタデータを第一級の属性として持たせられるようになった。route:cache のシリアライズやグループ継承(ドット記法と再帰マージ)に対応する。head情報のような「ルートに紐づくメタ」を一元管理する用途に向く。

Route::get('/users', [UserController::class, 'index'])
    ->metadata(['head' => ['title' => 'Users']]);

// 解決済みルートから読み戻す(ドット記法とデフォルト値に対応)
$request->route()->getMetadata('head.title');           // 'Users'
$request->route()->getMetadata('head.author', 'Taylor');

グループに付けたメタデータは配下にカスケードし、連想配列は再帰マージ、リストやスカラーは置き換えになる。

もう一つの大きな追加が Postgres のトランザクションプーラー(PgBouncer / RDS Proxy / Neon)対応。トランザクションモードのプーリングではプリペアドステートメントが使えないが、pooled => true を付けると疑似プリペアへ自動で切り替わる。マイグレーションや schema:dump のような直接接続が要る処理は direct エンドポイントへ自動ルーティングされる。

'pgsql' => [
    'driver'  => 'pgsql',
    'pooled'  => true,
    'url'     => env('DATABASE_URL'),
    // DDL とマイグレーション用の直結(非プール)エンドポイント
    'direct'  => env('DATABASE_DIRECT_URL'),
    // ...
],

例外単位でリトライ可否を決める Should Not Retry も地味に効く。例外クラスに retry() を生やすか、withExceptions() で他者の例外にも登録できる。false を返すとジョブは試行回数を消費せず即失敗になる。

class PaymentGatewayException extends RuntimeException
{
    public function retry(): bool
    {
        return false; // この例外は決してリトライしない
    }
}

ほかに dev:list(登録済み dev プロセスの一覧)、between() / unlessBetween() のタイムゾーン呼び出し順序の修正などが入った。

出典: https://laravel-news.com/laravel-13-17-0

コア変更点の早見表

バージョン 目玉 種別
13.13 Bus::bulk() / attachFromStorage() / Http::buildClient()(PSR-18) 機能追加
13.14 JsonSchema::fromArray() / キュー属性の継承整理 機能追加/修正
13.15 型付き trans()->string()/array() / date_equals とルートのセキュリティ修正 機能追加/セキュリティ
13.16 php artisan dev / whenFilledEnum() / 全レスポンスで withCookies() 機能追加
13.17 ルートメタデータ / Postgresプーラー対応 / Should Not Retry 機能追加

注目パッケージ(テーマ別に厳選)

監視・運用

本番の Laravel を「見える化」するパッケージが今月だけで5本出た。ざっくりした選び分けはこう。

  • Watchtower:スケジュール、キュー、ジョブ、例外を1画面に統合。即時実行、一括リトライ、解決マークまで操作できる。サンプリング(25%などにレート設定可能)や自動プルーニングなど本番前提の設計。
  • Vigilance:database / Redis / SQS / Beanstalkd / sync を横断してジョブ、Artisan、スケジューラを記録。ドライバを問わないのが強み。
  • LaraOwl:リクエスト、例外、クエリ、ジョブをセルフホストで監視。N+1検出や Reverb のリアルタイムダッシュボード付き(Apache 2.0)。
  • Scheduler List:スケジュールタスク専用。cron式、次回実行、タイムゾーンを一覧し、ブラウザから手動実行できる。
  • Filament Storage Monitor:Filament パネルにディスク使用量ウィジェットを足す。複数パーティション対応。

選ぶ目安は、ジョブや例外まで丸ごとなら Watchtower / LaraOwl、ドライバ非依存重視なら Vigilance、スケジュールだけなら Scheduler List。すでに Filament を使っているならストレージ監視は Filament Storage Monitor が早い。

セキュリティ・品質

  • Checkpoint:Laravel アプリを26種類の静的チェックで監査するArtisanコマンド。composer audit / npm audit、SQLi、XSS、コマンドインジェクション、SSRF のパターン照合、CSRF、マスアサインメント、TLS検証まで見る。
php artisan checkpoint:scan
php artisan checkpoint:scan --only="SQL Injection Risks,CSRF Protection"
php artisan checkpoint:github   # GitHub Actions 設定を生成
  • Privacy Filter:氏名やメールなどのPIIをローカル推論で検出する。エンティティ種別と信頼度スコア付き。外部APIに送らないのが要点で、ログにPIIを出していないかのチェックに使える。
$entities = PrivacyFilter::entities('Contact John Doe at jdoe@example.com.', threshold: 0.75);

foreach ($entities as $entity) {
    echo $entity->type; // private_email
    echo $entity->text; // jdoe@example.com
}
  • MigrAlign:マイグレーションと実DBの差分(スキーマドリフト)を検出し、Safe / Risky / Destructive の3段階で適用を制御する。「直接DBをいじった」「マイグレーション書き忘れ」を拾える。
php artisan migralign:sync --dry-run
php artisan migralign:sync --table=users --force

Eloquent・データベース

  • Filterable:クエリフィルタを専用クラスに構造化する。Invokable / Ruleset / Expression / Tree の4エンジンと、PHP 8 アトリビュート(#[...] 構文。Cast / Authorize / Required など)による宣言的な制御が特徴。
class TaskFilter extends Filterable
{
    #[Cast('integer')]
    #[In([1, 2, 3])]
    protected function priority(Payload $payload)
    {
        return $this->builder->where('priority_level', $payload->value);
    }
}
  • Truffle:国、通貨、ロールのような静的な参照データを、テーブルなしの Eloquent モデルとして扱う。$records 配列やCSV/JSONから読み込める。
  • fresh:custom:指定テーブルを残したままDBを再構築する。glob パターン対応。
php artisan fresh:custom users,plans,subscription_*
  • Subscriptionify:決済プロバイダ非依存で、プラン、機能、利用量、超過課金を自前DBで管理する。Toggle / Consumable / Limit / Metered の4タイプ。

UI・開発支援

  • Lattice:ページ、フォーム、テーブルをPHPクラスで定義し、Inertia経由でReactとしてレンダリングする。Laravel のバリデーションや Precognition に乗る。React/TS を直接書かずにフロントを組みたいときの選択肢。
#[AsPage(route: '/dashboard')]
class DashboardPage extends BasePage
{
    public function render(PageSchema $schema): PageSchema
    {
        return $schema->schema([
            Stack::make('dashboard')->schema([
                Heading::make('Dashboard'),
                Grid::make('stats')->columns(2)->schema([
                    Card::make('Orders', '128 this week.'),
                ]),
            ]),
        ]);
    }
}
  • Laradocs:Markdown からナビ付きの /docs を生成。フォルダ構成がそのままナビになり、コードと一緒にバージョン管理できる。
  • Toolkit:Laravel AI SDK 向けの再利用ツール集を、1ツール1パッケージで配る。eval() を使わない Calculator、SELECT限定でLIMITを自動付与する Database ツールなど、安全側に倒した設計。
composer require shipfastlabs/toolkit-calculator
composer require shipfastlabs/toolkit-tavily
  • Zed 向け Laravel LSP 拡張:ビュー、ルート、config、翻訳、env への定義ジャンプ、参照検索、アトミックリネーム、Blade補完に対応するコミュニティ拡張。

今月のトレンド3つ

1. 本番監視ツールの細分化。 監視系が1か月で5本。統合ダッシュボード型(Watchtower / LaraOwl)から、ドライバ非依存(Vigilance)、スケジュール特化(Scheduler List)まで粒度が分かれてきた。「とりあえず Horizon」だけでなく、監視したい対象で選べるようになっている。

2. セキュリティ・サプライチェーン意識。 パッケージ側(Checkpoint の静的監査、Privacy Filter のPII検出)でも、フレームワーク側(date_equals バイパス修正、ルートのアンシリアライズ制限)でも動きがあった。デプロイ前ゲートと本番監視が標準装備に向かっている。

3. AI×Laravel とサーバー駆動UI。 AIエージェント用のツールを安全に配る Toolkit、PHPでフロントを書く Lattice。React/TS に深入りせずにモダンな構成を組む方向と、AI連携の実装が同時に進んでいる。

その他の新着

ハイライトに入れなかったぶんもリンクで残しておく。

  • Parsel:PDF、Office文書、画像をPHPからローカル解析。座標付きテキスト抽出やOCR対応で、外部送信なし。
  • Sqids:連番IDを短いURLセーフ文字列に変換(Hashidsの後継)。可逆なので認可チェックの代わりにはならない点に注意。
  • Laravel Cloud の Scale-to-Zero と支出上限:無トラフィック時にスタックを停止し、初回リクエストで起動。月$5 Starter プランと組織ごとの支出上限が追加。
  • NationForge:市民団体向けのセルフホスト管理パネル。Laravel 12 + Livewire 3 + Filament スタックの実装例として読める(MITのCommunity Edition)。
  • Fast Laravel でのエッジキャッシュ事例:Laravel News 自身の高速化記録。Livewire を素のBladeに戻し動的部分を Alpine AJAX に逃がして、Cloudflare のキャッシュ率を1割台から7割近くまで上げた話。
  • Laracon US 2026:ボストンで7/28-29開催。Taylor Otwell ほか登壇者が公開された。
  • ドキュメンタリー「The Story of PHP」:JetBrains スポンサー、年内公開予定。PHP 30年史を当事者が語る。勉強会のネタにも。

まとめ

6月のLaravelは、コア機能の追加とまわりのツール拡充が同時に来た1か月だった。特に 13.15 のセキュリティ修正と 13.17 のプーラー対応は、本番を持っているなら確認しておきたい。

このまとめは毎月続ける。詳細は各出典リンクから。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?