Como desarrollador web, siempre estoy atento a las novedades en el mundo de la programación. Y cuando se trata de construir aplicaciones web seguras y eficientes, Laravel siempre ha sido mi elección. Con el lanzamiento de Laravel 11, comparto mi experiencia personal explorando las características de esta versión.
Fecha de Lanzamiento de Laravel 11
Laravel 11 fue anunciado para el 6 de febrero de 2024. Según la política de soporte de Laravel, los lanzamientos principales suelen llegar anualmente durante el primer trimestre, y esta vez no fue la excepción. Antes de migrar, conviene evaluar si tu aplicación actual requiere una actualización inmediata.
Aunque actualmente estamos a finales de Febrero aun hay algunas cosas que Taylor está terminando de pulir para ofrecer como siempre, una de las mejores experiencias en cada release.
<blockquote class="twitter-tweet w-full"><p lang="en" dir="ltr">Really sweating the details of Laravel 11. Been staying up at night thinking about the configuration situation.<br><br>It feels really nice to have no config files by default and to use your .env file to configure almost everything.<br><br>But, it makes some of the more obscure configuration…</p>— Taylor Otwell (@taylorotwell) <a href="https://twitter.com/taylorotwell/status/1761064355150315545?ref_src=twsrc%5Etfw">February 23, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Explorando las Novedades de Laravel 11
Estas son algunas de las características y cambios más relevantes de Laravel 11:
Fin del Soporte para PHP 8.1:
Laravel 11 descontinúa el soporte para PHP 8.1. PHP 8.2 y 8.3 son ahora el mínimo requerido.
Este cambio fue documentado en este PR
Estructura de Aplicación Simplificada:
Laravel 11 presenta una estructura de aplicación más simplificada, eliminando el código redundante y facilitando el proceso de desarrollo. Desde la eliminación automática de políticas y eventos hasta la integración de funcionalidades personalizadas de Artisan, Laravel 11 mejora la eficiencia y la mantenibilidad del código en todos los aspectos.
app
├── Http
│ └── Controllers
│ └── Controller.php
├── Models
│ └── User.php
└── Providers
└── AppServiceProvider.php
bootstrap
├── app.php
├── cache
│ ├── packages.php
│ └── services.php
└── providers.php
Cambios específicos:
- En
AuthServiceProvider, el framework descubre y elimina automáticamente las ‘$policies’. - Ya no necesitas
SendEmailVerificationNotificationenEventServiceProvider, ya que elEventServiceProviderbase lo registra. Además, notarás que Laravel ahora habilita la autodetección de eventos de forma predeterminada. BroadcastServiceProviderya no es necesario y, como resultado, se ha eliminado.- El framework ya no carga automáticamente el archivo
routes/channels.php. RedirectIfAuthenticatedes facilitado por la funcionalidad central del framework.- El middleware
Authenticateya no invoca el métodoredirectTo()para rutas JSON, eliminando la necesidad de verificaciones ternarias redundantes.
Los demás cambios pueden verse en este PR realizado por Taylor
Introducción del Trait Dumpable:
Laravel 11 agrega el Trait Dumpable, que permite integrar funciones de depuración directamente en las clases. Simplifica el debugging sin necesidad de helpers externos.
Evolución de los Model Casts:
En Laravel 11, los Model Casts pasan de ser una propiedad a una definición de método. Esto mejora la flexibilidad y facilita agregar lógica dentro de los casts.
Gestión de Configuraciones:
Laravel 11 centraliza las opciones de configuración en el archivo .env por defecto, eliminando la necesidad de archivos de configuración separados para la mayoría de los casos. El comando config:publish permite publicar archivos de configuración específicos cuando se necesitan.
Resumen de cambios en Laravel 11
Laravel 11 trae una estructura de aplicación más reducida, elimina archivos de configuración redundantes, introduce el Trait Dumpable y cambia los Model Casts a definiciones de método. Son cambios incrementales orientados a simplificar el código base de proyectos nuevos.
