Laravel 13.31 ajoute Queue::totalSize() et un événement JobInterrupted
Laravel v13.31.0 apporte une méthode Queue::totalSize() et un événement JobInterrupted pour les jobs Interruptible.
La version ajoute aussi le support chaperone pour les modèles pivot BelongsToMany, une méthode Vite devServerUrl(), des assertions once pour les fakes Mail et Notification, et de nombreux correctifs.
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.
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.
Tribune des lecteurs
Pas encore de contributions — lance le débat.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.