Guía de migración: 9.8.3 → 9.8.4
La versión 9.8.4 incluye una corrección en los estados HTTP y mejoras en el manejo de prefijos de rutas y la normalización de URL.
Resumen
Añadido
- Esta guía de migración.
Modificado
getHttpStatus()ahora reconoce el estado401 Unauthorized.ORoute::prefix()yORoute::group()ahora permiten anidamiento.- Las URL registradas con los métodos estáticos de
ORoutese normalizan para eliminar barras duplicadas y finales.
Eliminado
- No se ha eliminado nada.
Impacto en proyectos existentes
- No es necesario modificar las definiciones de rutas existentes.
- Los prefijos y grupos de rutas anidados ahora generan rutas con prefijos acumulativos.
- Las URL de las rutas se normalizan de forma consistente cuando contienen barras repetidas o finales.
- No se requieren cambios de configuración, en la base de datos ni en la CLI.
Por ejemplo, con prefijos anidados:
ORoute::prefix('/api', function(): void {
ORoute::get('/health', HealthComponent::class);
ORoute::prefix('/admin', function(): void {
ORoute::post('/login', LoginComponent::class);
ORoute::get('/me', MeComponent::class, [AdminAuthFilter::class]);
});
});
Se registran estas rutas:
/api/health/api/admin/login/api/admin/me
Las URL de las rutas también se normalizan. Por ejemplo:
ORoute::prefix('/api/', function(): void {
ORoute::prefix('//admin///', function(): void {
ORoute::get('//users/', UsersComponent::class);
});
});
La ruta se registra como:
/api/admin/users
La normalización de URL se aplica en los métodos estáticos de ORoute: get(), post(), put(), delete(), view(), group() y prefix().
Objetivo de esta actualización
Esta versión tiene como objetivo:
- Devolver el texto de estado HTTP correcto para
401 Unauthorizeden lugar de recurrir a200 OK. - Permitir prefijos y grupos de rutas anidados, y normalizar las URL de las rutas de forma consistente.
Compatibilidad con versiones anteriores
Las definiciones de rutas existentes siguen siendo compatibles. Las URL con barras duplicadas o finales ahora se normalizan a una única ruta canónica. Si tu aplicación depende de que esas barras sean significativas, revisa las definiciones de rutas.
Acción requerida por el desarrollador
En aplicaciones típicas no se requiere ninguna acción. Revisa las definiciones de rutas que dependan de barras duplicadas o finales.
Notas
No se requiere ninguna migración de la base de datos.