En la nueva versión de Laravel 11, surgieron cambios en las estructuras de carpetas y archivos. Si bien no representan un gran cambio a la hora de actualizar, puede que simplifique mucho y ordene mejor el código. Te dejo un resumen de los cambios en los directorios de Laravel 11.
Observaciones Generales
Se han añadido más variables de entorno al archivo .env.example.
El valor por defecto de la variable QUEUE_CONNECTION ha sido actualizado a database en lugar de sync.
Las variables de entorno BROADCAST_DRIVER y CACHE_DRIVER han sido renombradas como BROADCAST_CONNECTION y CACHE_STORE, respectivamente.
Se ha eliminado el Kernel HTTP. La configuración que antes se realizaba en este archivo ahora puede ser llevada a cabo en el archivo bootstrap/app.php, incluyendo la inscripción o sustitución de middleware.
El kernel de consola ha sido suprimido. Los horarios pueden ser definidos en el archivo de “rutas” de consola. Los comandos generados por make:command son cargados automáticamente y no requieren registro. Vías de carga adicionales para comandos pueden ser inscritas en el archivo bootstrap/app.php.
El manejador de excepciones ha sido descartado. La configuración del comportamiento de manejo de excepciones puede ser realizada en el archivo bootstrap/app.php a través de reportable, renderable, throttle, y más. Los callbacks recibidos por estas funciones tendrán sus tipos inspeccionados para verificar si manejan una excepción determinada.
El controlador HTTP base ya no extiende ninguna otra clase (necesitando la nueva característica de definición de middleware). No se incluyen características por defecto en el controlador base. La autorización puede ser realizada usando fachadas, o características pueden ser añadidas manualmente.
Todo middleware ha sido eliminado. La configuración del comportamiento de este middleware puede ser llevada a cabo mediante métodos estáticos en los middlewares mismos (ver notas del framework).
El modelo de usuario ahora utiliza un método de “casts” en lugar de una propiedad. El trait HasApiTokens ha sido eliminado por defecto dado que Sanctum no está instalado automáticamente.
Todos los proveedores de servicios excepto AppServiceProvider han sido eliminados. Las políticas son descubiertas automáticamente y las gates pueden ser inscritas en AppServiceProvider. De igual manera, los eventos pueden ser inscritos en AppServiceProvider. El comportamiento de enrutamiento es ahora determinado/personalizado en el archivo bootstrap/app.php.
El nuevo archivo bootstrap/app.php puede ser utilizado para personalizar el comportamiento central del framework como enrutamiento, contenedor de enlaces, middleware y manejo de excepciones.
Sanctum ya no es instalado por defecto
Los archivos de configuración no están presentes automáticamente. Pueden ser publicados mediante el comando config:publish. Los valores por defecto están presentes en la configuración a nivel de framework y de aplicación, y ahora la configuración a nivel de aplicación sobrescribe las definiciones del framework, así que solo los valores personalizados necesitan estar presentes en los archivos de configuración a nivel de aplicación.
Los archivos de migración han sido refechados para estar siempre actualizados. La migración de la tabla password_reset_tokens ha sido combinada en la migración de la tabla users. De igual forma, la migración de la tabla jobs ha sido combinada en una sola migración con la tabla failed_jobs.
El arranque de Echo ha sido eliminado automáticamente. Es reinstalado mediante el nuevo comando install:broadcasting.
Los archivos de rutas de API y de canal no están presentes automáticamente, pueden ser recreados mediante install:api e install:broadcasting, respectivamente.