¡Laravel 11 ya está disponible! Actualizado el 19 de marzo de 2024 por Derrell 6 minutos y 58 segundos para leer Laravel 11, lanzado el 12 de marzo de 2024, marca una actualización significativa del framework Laravel , introduciendo una serie de nuevas características y mejoras destinadas a mejorar la experiencia de desarrollo y el rendimiento de las aplicaciones. Centrado en la eficiencia, la seguridad y el desarrollo de aplicaciones web en tiempo real, Laravel 11 aporta varias mejoras clave e introduce Laravel Reverb, un nuevo servidor WebSocket para la comunicación en tiempo real. Política de soporte de Laravel Requisitos PHP 8.2 Estructura racionalizada del directorio Límite de carga Modelos de reparto como métodos Laravel Reverb Nuevos comandos artesanos Ruta Sanitaria y Rotación APP_KEY Instalar Laravel 11 Cómo actualizar a Laravel 11 Conclusión Índice Política de soporte de Laravel Requisitos de PHP 8.2 para Laravel 11 Estructura racionalizada del directorio Límite de carga Modelos de reparto como métodos Laravel Reverb: Comunicación en tiempo real Aplicación práctica y ampliación Nuevos comandos artesanos Ruta Sanitaria y Rotación APP_KEY Instalar Laravel 11 Cómo actualizar a Laravel 11 Conclusión Política de soporte de Laravel La política de soporte de Laravelgarantiza que los desarrolladores reciban puntualmente actualizaciones, correcciones de errores y parches de seguridad para sus aplicaciones. Según esta política, Laravel proporciona 18 meses de soporte para correcciones de errores y 2 años de soporte para correcciones de seguridad para cada versión principal. Este enfoque estructurado del soporte de versiones permite a los desarrolladores planificar eficazmente sus rutas de actualización, garantizando que sus aplicaciones permanezcan seguras y actualizadas. VersiónPHP soportadoFecha de publicaciónCorrección de errores hastaCorrecciones de seguridad hastaLaravel 98.0 - 8.28 de febrero de 20228 de agosto de 20236 de febrero de 2024Laravel 108.1 - 8.314 de febrero de 20236 de agosto de 20244 de febrero de 2025Laravel 118.2 - 8.312 de marzo de 20243 de septiembre de 202512 de marzo de 2026Laravel 128.2+Q1 2025Q3 2026Q1 2027(*) Laravel 9 ha llegado al final de su vida útil Requisitos de PHP 8.2 para Laravel 11 Con el lanzamiento de Laravel 11, se ha producido un cambio significativo en el requisito de versión de PHP. Laravel 11 exige PHP 8.2 como versión mínima, alineando el framework con las últimas características, mejoras de rendimiento y mejoras de seguridad que ofrece PHP 8.2. Esta decisión subraya el compromiso de Laravelde aprovechar las tecnologías más actuales y robustas disponibles, garantizando que los desarrolladores puedan crear aplicaciones altamente eficientes, seguras e innovadoras. PHP 8.2 introduce numerosas características nuevas y optimizaciones que pueden beneficiar significativamente a las aplicaciones Laravel . Entre ellas se incluyen mejoras en la programación orientada a objetos, nuevos tipos y atributos que fomentan mejores prácticas de codificación, y mejoras en el rendimiento que pueden conducir a una ejecución más rápida de la aplicación. Al requerir PHP 8.2, Laravel garantiza que todas las aplicaciones creadas con esta versión aprovecharán de forma inherente estas mejoras, lo que dará lugar a soluciones web más fiables y eficaces. Los desarrolladores que planeen actualizar a Laravel 11 o iniciar nuevos proyectos con él deben asegurarse de que sus entornos de servidor están actualizados a PHP 8.2. Esta actualización no sólo facilita la compatibilidad con Laravel 11, sino que también posiciona a las aplicaciones para beneficiarse del soporte activo de PHP, incluyendo correcciones de seguridad y optimizaciones de rendimiento. Estructura racionalizada del directorio Laravel 11 simplifica su estructura de directorios, reduciendo la complejidad inicial para los desarrolladores. En particular, Kernel.php se han eliminado, y ahora se pueden añadir directamente programas intermedios en el archivo bootstrap/app.php archivo. app.php<?php use Illuminate\Foundation\Application; use Illuminate\Foundation\Configuration\Exceptions; use Illuminate\Foundation\Configuration\Middleware; return Application::configure(basePath: dirname(__DIR__)) ->withRouting( web: __DIR__.'/../routes/web.php', commands: __DIR__.'/../routes/console.php', health: '/up', ) ->withMiddleware(function (Middleware $middleware) { // }) ->withExceptions(function (Exceptions $exceptions) { // })->create(); En config se ha adelgazado eliminando algunos de los archivos que antes se incluían en Laravel 10, como: config/broadcasting.php config/cors.php config/hashing.php config/sanctum.php config/view.php En routes También se ha limpiado un poco el directorio eliminando: routes/api.php routes/channel.php routes/console.php Límite de carga La introducción de la función de límite de carga ansiosa permite a los desarrolladores consultar eficazmente los modelos relacionados sin sobrecargar el sistema con datos innecesarios. Esta función optimiza el proceso de carga de datos, permitiendo limitar el número de registros relacionados cargados, mejorando así el rendimiento de la aplicación. En versiones anteriores de Laravel necesitabas instalar un paquete independiente para el límite de carga ansiosa. class User extends Model { public function posts() { return $this->hasMany(Post::class); } } class Post extends Model { // ... } $users = User::with(['posts' => function ($query) { $query->latest()->limit(10); }])->get(); Modelos de reparto como métodos Laravel 11 permite definir los vaciados como métodos dentro de las clases modelo, lo que ofrece más flexibilidad en la forma de vaciar los datos cuando se recuperan o almacenan en la base de datos. Este enfoque basado en métodos proporciona una forma más clara y dinámica de gestionar la conversión de datos, mejorando la legibilidad y la capacidad de mantenimiento del código en general. use App\Enums\UserOption; use Illuminate\Database\Eloquent\Casts\AsEnumCollection; // ... /** * Get the attributes that should be cast. * * @return array<string, string> */ protected function casts(): array { return [ 'email_verified_at' => 'datetime', 'password' => 'hashed', 'options' => AsEnumCollection::of(UserOption::class), ]; } A modo de comparación, en Laravel 10 este modelo de reparto se definiría utilizando la opción $cast pero no podrás llamar a métodos estáticos. protected $casts = [ 'options' => AsEnumCollection::class.':'.UserOption::class, ]; Laravel Reverb: Comunicación en tiempo real Laravel Reverb destaca como una de las adiciones más interesantes de Laravel 11, ya que ofrece un servidor WebSocket de primera parte que facilita la comunicación en tiempo real entre el cliente y el servidor. Reverb está diseñado para ofrecer un alto rendimiento, capaz de soportar miles de conexiones simultáneas sin las ineficiencias del sondeo HTTP. Se integra perfectamente con las capacidades de transmisión existentes en Laravely está construido para la escalabilidad, con soporte para el escalado horizontal mediante Redis. Esto lo convierte en una solución robusta para los desarrolladores que buscan incorporar funciones en tiempo real a sus aplicaciones, como chat en directo, notificaciones y actualizaciones dinámicas de contenido. Reverb está optimizado para la velocidad y se integra sin problemas con Laravel Forge para el despliegue, ofreciendo soporte de monitorización integrado con Pulse. Su uso del protocolo Pusher garantiza la compatibilidad con Laravel Broadcasting y Laravel Echo, facilitando el desarrollo de aplicaciones web atractivas e interactivas. Aplicación práctica y ampliación Implementar Laravel Reverb implica instalar el paquete, configurarlo según los requisitos de tu proyecto e integrar sus optimizaciones para mejorar tu aplicación. Probar y validar estas integraciones es crucial para garantizar que las funciones en tiempo real funcionan como se espera. También se recomienda supervisar el rendimiento de la aplicación después de su despliegue para identificar y abordar cualquier posible cuello de botella. Nuevos comandos artesanos Los nuevos comandos Artisan de Laravel 11 son una gran ayuda para la productividad de los desarrolladores, ya que reducen significativamente el código repetitivo necesario para añadir nuevos componentes a una aplicación. Con comandos para generar clases, enums, interfaces y traits, ahora los desarrolladores pueden crear nuevas partes de su aplicación con el mínimo esfuerzo. Estos comandos están diseñados para agilizar el proceso de desarrollo, permitiendo una configuración y estructuración más rápidas de la lógica de la aplicación y las representaciones de datos. Al utilizar estos comandos, los desarrolladores pueden adherirse a las mejores prácticas de organización y mantenimiento del código, garantizando que su base de código permanezca limpia y bien estructurada. Por ejemplo, la introducción de php artisan make:enum simplifica la creación de enums, que son útiles para definir un conjunto de constantes con nombre. Los enums pueden hacer que tu código sea más legible y menos propenso a errores, al limitar los valores que puede tener una variable. Del mismo modo, la función php artisan make:interface y php artisan make:trait facilitan la adopción de los principios SOLID promoviendo el uso de interfaces para definir contratos dentro de una aplicación y rasgos para compartir métodos entre clases. Ruta Sanitaria y Rotación APP_KEY En /up La ruta de salud y la función de rotación APP_KEY son fundamentales para mantener la seguridad y fiabilidad de las aplicaciones Laravel . La ruta de salud proporciona una forma sencilla de verificar que tu aplicación se está ejecutando y responde, lo que la hace inestimable para los sistemas de supervisión del tiempo de actividad y de alerta. Al integrar esta ruta, los desarrolladores pueden configurar fácilmente comprobaciones de salud que supervisen el estado de la aplicación, detectando y respondiendo rápidamente a cualquier tiempo de inactividad. La función de rotación de APP_KEY aborda un problema de seguridad común al permitir la rotación segura de la clave de cifrado de la aplicación sin riesgo de pérdida de datos. En versiones anteriores de Laravel, cambiar la APP_KEY podría dar lugar a datos inaccesibles debido a la dependencia de cifrado de esta clave. Laravel 11 introduce un enfoque más flexible, que permite descifrar datos antiguos con claves anteriores especificadas en el campo APP_PREVIOUS_KEYS mientras se encriptan nuevos datos con la clave actual. Esta función es esencial para mantener altos niveles de seguridad, ya que la rotación periódica de claves puede proteger contra ciertos tipos de ataques criptográficos sin el inconveniente de perder el acceso a los datos encriptados. Instalar Laravel 11 Si quieres configurar una nueva instalación de Laravel 11, sólo tienes que seguir los procedimientos normales para instalar Laravel manualmente o mediante Softaculous. Cómo actualizar a Laravel 11 Hay dos rutas que puedes tomar para actualizar a Laravel 11. Puedes actualizar manualmente siguiendo la Guía de Actualización deLaravel o pagar por Laravel Shift para automatizar el proceso de actualización. Conclusión En conjunto, estas mejoras de Laravel 11 subrayan el compromiso del framework de facilitar prácticas de desarrollo eficientes, garantizando al mismo tiempo la seguridad y resistencia de las aplicaciones. Al incorporar estas características, Laravel sigue ofreciendo una base sólida para crear y mantener aplicaciones PHP modernas, manteniéndose al día de las necesidades cambiantes de los desarrolladores y de la industria en general. Potencia tus aplicaciones Laravel con nuestro HostingLaravel especializado. Experimenta velocidades más rápidas para tus aplicaciones y sitios web Laravel gracias al almacenamiento NVMe , la protección del servidor, los recursos dedicados y las herramientas de optimización. 99,99% de tiempo de actividad SSL gratuito Dirección IP dedicada Herramientas para desarrolladores Alojamiento Laravel Comparte este artículo Artículos relacionados Reflexionando sobre Laracon US 2024: Nuestras principales conclusiones PHP vs Laravel: La guía completa para tomar decisiones empresariales Alojamiento compartido para Laravel: ¿Es el adecuado? Lanzamiento de Laravel 11.3 - Presentación de nuevas funciones ¡Laravel 11 ya está disponible! Éxito del comercio electrónico con Laravel ¿Por qué usar Laravel? Comprender las ventajas del framework