Laravel 13.31 añade Queue::totalSize() y un evento JobInterrupted
Laravel v13.31.0 incluye un nuevo método Queue::totalSize() y un evento JobInterrupted para jobs Interruptible.
La versión también añade soporte chaperone para modelos pivot BelongsToMany, un método Vite devServerUrl(), aserciones once para los fakes de Mail y Notification, y una larga lista de correcciones.
El equipo de Laravel publicó la versión v13.31.0 el 8 de septiembre de 2026. Las novedades principales son un método Queue::totalSize() y un nuevo evento JobInterrupted.
use Illuminate\Queue\Events\JobInterrupted;
Event::listen(JobInterrupted::class, function (JobInterrupted $event) {
// Handle the job interruption
});Jack Bayliss contribuyó totalSize(), que devuelve el número total de jobs en una conexión de cola con una sola llamada. Antes había que sumar manualmente totalPendingSize(), totalDelayedSize() y totalReservedSize(). El pull request es el #61373.
Bayliss también añadió el evento JobInterrupted en la PR #61412. Se dispara cuando un worker interrumpe un job que implementa el contrato Interruptible, lo que permite enganchar limpieza o registro. Otro cambio del mismo colaborador añade los nombres de conexión y cola al evento WorkerStopping existente cuando se mata un worker.
Caleb White incorporó soporte chaperone para los modelos pivot BelongsToMany en la PR #61152. Llamar a chaperone() en una relación belongsToMany permite a un modelo pivot personalizado resolver sus relaciones BelongsTo a partir de los modelos ya hidratados durante la carga, sin consultas adicionales. Sin un modelo pivot personalizado, la llamada no hace nada. Los nombres de relación se deducen automáticamente, pero pueden sobrescribirse con los argumentos declaring y related.
La clase Vite gana un método devServerUrl() gracias a ramonmalcolm10, útil para generar URLs de assets contra el servidor de desarrollo. Los fakes de Mail y Notification reciben aserciones once de talaridisTh: assertSentOnce() y assertQueuedOnce() para Mail, además de assertSentToOnce() y assertSentOnDemandOnce() para Notification, en sustitución del patrón assertSentTimes(..., 1).
El changelog incluye además correcciones destacadas. Orrison hizo el driver de colas Redis seguro para clústeres y añadió reintentos en phpredis ante reinicios de conexión. Se corrigió una fuga de memoria en el cliente HTTP. Otras correcciones afectan a lazy() y lazyById(), que ignoraban limit() y offset(), a la propagación de contexto a procesos concurrentes, al ámbito de closures de wherePivot(), a los atributos UsePolicy y UseEloquentBuilder, que ahora se resuelven desde clases padre, y al método create_sid() que faltaba en ArraySessionHandler de cara a PHP 9.0. El diff completo entre v13.30.1 y v13.31.0 está en GitHub.
Tribuna de lectores
Aún no hay aportaciones — abre el debate.
Inicia la conversación
Sin cuenta ni contraseña — introduce tu correo y te enviamos un enlace de acceso de un solo uso. ¿Primera vez? Todo se configura automáticamente.
Tu valoración se aplicará automáticamente al iniciar sesión.
Revisa tu bandeja de entrada
Hemos enviado un enlace de acceso a …. Ábrelo en este dispositivo — esta pestaña te conectará automáticamente.
¿No llega nada? Mira en la carpeta de spam — y marca el correo como «No es spam» para que la próxima vez llegue directo.