Laravel Framework 13.33.0 es la versión 13.x analizada en el artículo publicado el 23 de septiembre de 2026. La revisión aporta detalles técnicos que amplían la cobertura anterior.
use Illuminate\Database\Eloquent\Attributes\Refreshes;
#[Refreshes('name')]
class User extends Model
{
}Joost de Bruijn añadió el método tags() al store de caché memoized. Cache::memo() puede combinar ahora la caché en memoria de una petición con cachés etiquetadas. Las lecturas repetidas contactan con el backend una vez y después usan el valor memorizado. Las escrituras actualizan la caché etiquetada e invalidan su copia en memoria. Al vaciar un tag también se eliminan sus entradas memorizadas. Laravel 12.9 había introducido la caché memoized sin tags. Para este caso, antes hacía falta una segunda consulta mediante Cache::store('array'). El cambio está en la PR #61593.
Caleb White añadió el atributo #[Refreshes] y la propiedad $refreshes para los modelos Eloquent. Ambos recargan columnas concretas después de crear o actualizar un modelo. La función está pensada para columnas virtualAs, storedAs y otros valores generados por la base de datos. Esos valores pueden faltar o quedar desactualizados en el modelo en memoria. Laravel ejecuta una consulta en la conexión de escritura y solo solicita las columnas indicadas. Los nombres se pueden pasar como un array o como argumentos variádicos. En el ejemplo, #[Refreshes('name')] aplicado a User permite obtener "Taylor Otwell" después de crear el usuario con first_name y last_name. La implementación corresponde a la PR #61523.
Zein Ahmad añadió un modo opcional nullable() para AsCollection y AsArrayObject. Los casts normales siguen guardando un null asignado como la cadena JSON "null". Las variantes nullable escriben un NULL de base de datos, por lo que whereNull() puede encontrar la fila. Se pueden usar AsCollection::nullable() y AsArrayObject::nullable(). La modificación figura en la PR #61596.
Sander Muller añadió los modificadores inplace() y lock() para operaciones sobre índices y claves foráneas. Una migración de MySQL puede solicitar ALGORITHM=INPLACE y LOCK=NONE. En los casos compatibles, esto evita una reconstrucción bloqueante de la tabla. Los modificadores funcionan con index(), unique(), primary(), fullText(), spatialIndex() y foreign(). Amplían el modificador instant(), que ya estaba disponible para definiciones de columnas. La PR #61602 documenta el cambio.
Md Sukkur Ali corrigió la resolución de atributos en FormRequest heredadas. PHP no hereda automáticamente los atributos de las clases padre. Por eso, #[StopOnFirstFailure] y #[FailOnUnknownFields] definidos en una ApiRequest común no se aplicaban a las clases hijas. StorePostRequest recibe ahora esos atributos al extender ApiRequest. El arreglo se registra en la PR #61586.
Jack Bayliss añadió Worker::$killOnTimeout. Por defecto, un job que supera su tiempo límite termina el proceso del worker. El supervisor inicia después otro worker. Con false, el worker lanza TimeoutExceededException. El job puede hacer tareas de limpieza y el worker continúa funcionando. Un try/catch demasiado amplio alrededor de handle() puede capturar la excepción. Kieran Brown también añadió Worker::killUsing(), un hook que se ejecuta antes de SIGKILL y permite enviar un código de salida personalizado al supervisor. Estos cambios aparecen en las PRs #61591 y #61622.
Jenthe Noordsij separó los dos usos de $this->artisan() mediante mockArtisan() y realArtisan(). El primero devuelve un PendingCommand para definir expectativas. El segundo ejecuta el comando y devuelve el código de salida como entero. Las pruebas ya no necesitan cambiar $mockConsoleOutput. Los helpers están incluidos en la PR #61588.
El changelog completo de 13.33.0 también registra numerosas correcciones y mejoras adicionales: eliminación de restart_syscalls en pcntl_signal para Worker, ajuste en el almacenamiento de hashes de contraseñas para sesiones autenticadas, corrección de claves enum en many() y get() de la caché etiquetada, corrección de Eloquent Collection duplicates() con clave o callback, mejoras en los reintentos de jobs de Cloud, compatibilidad con brick/math 0.20 y 1.0, health-start-period en workflows, order() en DevCommands, EncodedParameter en RouteUrlGenerator, tipos de valor mejorados para Collection::put(), URL relativas para el hub Mercure, opciones de servidor para conexiones PostgreSQL, cobertura de CI para MariaDB 11 y 12.3, protocolos valkey:// y valkeys://, corrección de dumps de esquema SQLite con shadow tables, uniformidad de ortografía de docblocks, flag Composer --with-all-dependencies, reconstrucción del cliente phpredis cuando se pierde la conexión durante una pipeline o transacción, --pretend con install:broadcasting, batch actualizado para eventos BatchFinished y BatchCanceled, array JSON vacío con route:list --json, vista predeterminada para make:notification --markdown, mejoras en la suite de pruebas, corrección de LazyCollection::take() con límite negativo grande, omisión de batches no reenintentables en queue:retry-batch, consolidación y correcciones de orden de pruebas, respeto a anulaciones de FILESYSTEM_DISK en configuración de Cloud, soporte para réplicas de lectura de base de datos, pooling nativo opcional para PostgreSQL, manejo de cabeceras no textuales en NotPwndVerifier, corrección de errores de cursor de Redis 7.4 con Predis scan(), restauración de registro de consultas después de callback pretend fallido, sole en higher-order proxies, createQuietly() y createManyQuietly() en BelongsToMany, así como mejoras en el enlace de expresiones en whereValueBetween().




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.