Das Laravel-Team hat am 8. September 2026 die Version v13.31.0 veröffentlicht. Die wichtigsten Neuerungen sind eine Queue::totalSize()-Methode und ein neues JobInterrupted-Event.

terminal
use Illuminate\Queue\Events\JobInterrupted;

Event::listen(JobInterrupted::class, function (JobInterrupted $event) {
    // Handle the job interruption
});

Jack Bayliss steuerte totalSize() bei. Die Methode liefert die Gesamtzahl der Jobs auf einer Queue-Verbindung in einem Aufruf. Bisher musste man dafür totalPendingSize(), totalDelayedSize() und totalReservedSize() selbst addieren. Der Pull Request ist #61373.

Bayliss fügte außerdem in PR #61412 das JobInterrupted-Event hinzu. Es feuert, wenn ein Worker einen Job unterbricht, der den Interruptible-Contract implementiert, sodass Anwendungen Aufräumarbeiten oder Logging anhängen können. Eine weitere Änderung desselben Contributors ergänzt das bestehende WorkerStopping-Event um Connection- und Queue-Namen, wenn ein Worker beendet wird.

Caleb White brachte in PR #61152 Chaperone-Support für BelongsToMany-Pivot-Modelle. Ein Aufruf von chaperone() auf einer belongsToMany-Relation erlaubt es einem eigenen Pivot-Modell, seine BelongsTo-Relationen aus den bereits hydrierten Modellen aufzulösen, ohne zusätzliche Datenbankabfragen. Ohne eigenes Pivot-Modell ist der Aufruf ein No-op. Die Relationsnamen werden automatisch erraten, lassen sich aber über die Argumente declaring und related überschreiben.

Die Vite-Klasse erhielt von ramonmalcolm10 eine devServerUrl()-Methode, nützlich zum Erzeugen von Asset-URLs gegen den Dev-Server. Die Mail- und Notification-Fakes bekamen von talaridisTh Once-Assertions: assertSentOnce() und assertQueuedOnce() für Mail sowie assertSentToOnce() und assertSentOnDemandOnce() für Notification, als Ersatz für das bisherige assertSentTimes(..., 1)-Muster.

Der Changelog enthält zudem bemerkenswerte Fixes. Orrison machte den Redis-Queue-Treiber cluster-sicher und fügte Retry-Handling für phpredis bei Verbindungsabbrüchen hinzu. Ein Memory Leak im HTTP Client wurde behoben. Weitere Fixes betreffen lazy() und lazyById(), die limit() und offset() ignorierten, die Context-Propagation an parallele Prozesse, den Closure-Scope von wherePivot(), die Attribute UsePolicy und UseEloquentBuilder, die nun von Elternklassen aufgelöst werden, sowie den fehlenden create_sid() im ArraySessionHandler im Hinblick auf PHP 9.0. Der komplette Diff zwischen v13.30.1 und v13.31.0 liegt auf GitHub.