Laravel 13.36 es una actualización de mantenimiento para aplicaciones que ya utilizan Laravel 13. Se centra en el desarrollo diario y en la operación en producción, sin exigir un rediseño importante.
use Illuminate\Validation\Rule;
$request->validate([
'phone' => [
Rule::requiredWithout('email'),
],
'website' => [
'nullable',
Rule::url()->protocols(['https']),
],
'device_id' => [
Rule::uuid()->version(4),
],
]);La validación incorpora builders fluidos de Rule:: para reglas que antes se expresaban principalmente mediante cadenas. Entre ellas están requiredWithout, los protocolos de URL, las versiones de UUID, los valores distinct sin distinguir mayúsculas y minúsculas y las contraseñas confirmadas. La sintaxis de cadenas sigue disponible. Los builders mejoran el autocompletado del editor y mantienen los parámetros estructurados, lo que evita ambigüedades cuando una cadena contiene comas.
DB::olap() ejecuta un callback con una carga analítica en entornos MySQL basados en Vitess compatibles, incluido PlanetScale. Laravel recupera la carga anterior cuando termina el callback. En otras conexiones de base de datos, el callback se ejecuta con normalidad. La función no optimiza el SQL por sí sola ni promete consultas más rápidas. Siguen siendo necesarios índices adecuados, consultas bien diseñadas y límites razonables de datos. Los informes de ingresos, los históricos de inventario, el análisis de clientes y las grandes agregaciones son usos posibles.
Los workers de cola de larga duración pueden restablecer el estado sticky de las conexiones de lectura y escritura entre trabajos. La opción se activa de forma voluntaria con Worker::$flushStickyConnections = true en AppServiceProvider. Está desactivada por defecto porque algunos flujos necesitan que un trabajo posterior lea mediante la conexión de escritura. Las aplicaciones con réplicas o separación de lecturas y escrituras deben probarla antes de adoptarla.
Los eventos de broadcasting dirigidos únicamente a Mercure se publican ahora de forma síncrona por defecto. Los eventos que también usan otro broadcaster continúan en la cola. Para mantener el envío asíncrono a Mercure, hay que configurar MERCURE_URL="${APP_URL}/.well-known/mercure" y MERCURE_ASYNC=true. El modo síncrono añade trabajo a la petición actual. El modo asíncrono requiere workers de cola.
Los mailables en cola respetan ahora #[DeleteWhenMissingModels]. Si el modelo relacionado ya no existe, Laravel descarta el trabajo sin lanzar ModelNotFoundException. También funciona #[FailOnTimeout] en estos mailables. Un trabajo que supera su tiempo límite queda marcado como fallido. El proveedor de correo podría haber aceptado el mensaje antes del timeout, por lo que todavía hay que valorar el riesgo de entregas duplicadas.
En los correos Markdown, Laravel escapa las barras invertidas de los valores proporcionados por usuarios junto con los corchetes. Así se evita que una entrada preparada modifique el destino previsto de un enlace. La protección es relevante para correos que incorporan perfiles, comentarios, datos de pedidos o información procedente de APIs externas.
El sistema de archivos añade compatibilidad con proveedores de credenciales S3 con nombre y discos Cloud IAM. La salida JSON de los workers incluye información de conexión en los mensajes relevantes sobre pausas, reanudaciones y detenciones. La recuperación de Redis reconstruye el cliente cuando no hay ningún nodo del clúster disponible y libera los sockets persistentes antes de hacerlo. También hay correcciones para locales de notificaciones, búsqueda de columnas del esquema, consultas, flujos de eventos, procesamiento de colas y otros componentes internos.
Antes de actualizar conviene revisar el changelog oficial y los cambios entre Laravel 13.35 y 13.36. Las primeras pruebas deben ejecutarse en desarrollo o staging. Hay que cubrir validación, colas, notificaciones y broadcasting, además de revisar Mercure y la configuración de las conexiones de base de datos. También se deben comprobar los workers y las integraciones de almacenamiento cloud. Tras el despliegue, hay que observar los registros, los trabajos fallidos y el comportamiento de la base de datos. La adopción de cada función puede hacerse de forma gradual.




Comentarios
Aún no hay comentarios — escribe el primero.
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.