L'équipe Laravel a publié la version v13.31.0 le 8 septembre 2026. Les principales nouveautés sont une méthode Queue::totalSize() et un nouvel événement JobInterrupted.

terminal
use Illuminate\Queue\Events\JobInterrupted;

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

Jack Bayliss a contribué totalSize(), qui renvoie le nombre total de jobs sur une connexion de queue en un seul appel. Auparavant, il fallait additionner manuellement totalPendingSize(), totalDelayedSize() et totalReservedSize(). La pull request est la #61373.

Bayliss a également ajouté l'événement JobInterrupted dans la PR #61412. Il se déclenche quand un worker interrompt un job implémentant le contrat Interruptible, ce qui permet d'y accrocher du nettoyage ou de la journalisation. Une autre modification du même contributeur ajoute les noms de connexion et de queue à l'événement WorkerStopping existant lorsqu'un worker est tué.

Caleb White a apporté le support chaperone aux modèles pivot BelongsToMany dans la PR #61152. Appeler chaperone() sur une relation belongsToMany permet à un modèle pivot personnalisé de résoudre ses relations BelongsTo à partir des modèles déjà hydratés lors du chargement, sans requêtes supplémentaires. Sans modèle pivot personnalisé, l'appel est sans effet. Les noms de relation sont devinés automatiquement mais peuvent être redéfinis via les arguments declaring et related.

La classe Vite gagne une méthode devServerUrl() grâce à ramonmalcolm10, utile pour construire des URL d'assets vers le serveur de développement. Les fakes Mail et Notification reçoivent des assertions once de la part de talaridisTh : assertSentOnce() et assertQueuedOnce() pour Mail, ainsi que assertSentToOnce() et assertSentOnDemandOnce() pour Notification, en remplacement du style assertSentTimes(..., 1).

Le changelog contient aussi des correctifs notables. Orrison a rendu le driver de queue Redis compatible avec les clusters et ajouté une gestion des nouvelles tentatives pour phpredis en cas de réinitialisation de connexion. Une fuite mémoire dans le client HTTP a été corrigée. D'autres correctifs concernent lazy() et lazyById() qui ignoraient limit() et offset(), la propagation du contexte vers les processus concurrents, la portée des closures de wherePivot(), les attributs UsePolicy et UseEloquentBuilder désormais résolus depuis les classes parentes, et le create_sid() manquant dans ArraySessionHandler en prévision de PHP 9.0. Le diff complet entre v13.30.1 et v13.31.0 est disponible sur GitHub.