Ir al contenido
PHP Argentina 🐘

Laravel 11: novedades y mejoras

laravel, laravel 11, actualizacion, caracteristicas, rendimiento, php 8.26 minutos de lectura

Laravel 11 banner

Laravel 11: novedades y mejoras

Laravel 11 ya está disponible e incluye compatibilidad mínima con PHP v8.2, un nuevo paquete Laravel Reverb, una estructura de directorios optimizada y más...

Laravel Reverb

Laravel Reverb es un nuevo servidor WebSocket de primera mano para aplicaciones Laravel, que permite la comunicación en tiempo real entre el cliente y el servidor. Algunas de las características de Reverb incluyen:

Velocidad increíble

Reverb está optimizado para la velocidad. Un único servidor puede soportar miles de conexiones y canalizar datos sin el retraso y la ineficiencia del HTTP polling.

Integración perfecta

Desarrolla con las capacidades de broadcasting de Laravel. Deploys con la integración de Laravel Forge y Reverb. Monitorea con el soporte integrado para Pulse.

Construido para escalar

Aumenta la capacidad infinitamente utilizando el soporte integrado de Reverb para el escalado horizontal con Redis, lo que te permite administrar conexiones y canales en múltiples servidores.

Pusher

Reverb utiliza el protocolo Pusher para WebSockets, haciéndolo inmediatamente compatible con el broadcasting de Laravel y Laravel Echo.

Estructura de directorios optimizada

En una instalación nueva, el número de archivos se ha reducido en aproximadamente 69 archivos. ¡Espectacular!

  • Los controladores ya no extienden nada por defecto.
  • No más directorio de middleware.

Actualmente, Laravel incluye nueve middlewares y muchos que nunca personalizarías. Sin embargo, si deseas personalizarlos, se mueven a App/ServiceProvider.

Por ejemplo:

1public function boot(): void
2{
3 EncryptCookies::except(['some_cookie']);
4}

No más Http/Kernel

La mayoría de las cosas que solías hacer en el Kernel ahora las puedes hacer en Bootstrap/App.

1return Application::configure()
2 ->withProviders ()
3 -withRouting(
4 web: __DIR__.'/../routes/web.php'
5 commands: __DIR__.'/../routes/console.php',
6 )
7 ->withMiddleware(function(Middleware Smiddleware) {
8 $middleware->web(append: LaraconMiddleware::class):
9 })

Cambios en las conversiones de modelos

Los casts de modelos ahora se definen como un método en lugar de una propiedad. Cuando se definen como un método, podemos hacer otras cosas, como llamar a otros métodos directamente desde los casts. Aquí hay un ejemplo usando un nuevo AsEnumCollection de Laravel 11:

1protected function casts(): array
2{
3 return [
4 'email_verified_at' => 'datetime',
5 'password' => 'hashed',
6 'options'=AsEnumCollection::of(UserOption::class),
7 ];
8}

Nuevo Trait Dumpable

Esto tiene como objetivo optimizar el núcleo del framework, ya que varias clases actualmente tienen métodos dd() o dump(). Además, puedes usar este trait Dumpable en tus propias clases:

1class Stringable implements JsonSerializable, ArrayAccess
2{
3 use Conditionable, Dumpable, Macroable, Tappable;
4
5 str('foo')->dd();
6 str('foo')->dump();
7}

Cambios de configuración

Laravel tiene muchos archivos de configuración, y Laravel 11 los elimina, y todas las opciones de configuración caen en cascada. El archivo .env se ha expandido para incluir todas las opciones que desees establecer.

Nuevo método Once

Laravel 11 incluye un nuevo método helper once() que asegura que siempre obtendrás el mismo valor sin importar cuántas veces llames a un método de objeto. La función once() es útil cuando tienes código que deseas asegurarte de que se ejecute solo una vez.

Migraciones predeterminadas reducidas

Cuando inicias una nueva aplicación Laravel, viene con algunas migraciones predeterminadas de 2014 y 2019. Ahora vendrán con las fechas eliminadas y divididas en solo dos archivos.

Cambios en las rutas

De forma predeterminada, solo habrá dos archivos de ruta, console.php y web.php. Las rutas de API ahora serán optativas a través de php artisan install:api, brindándote el archivo de rutas API y Laravel Sanctum.

Lo mismo ocurre con el broadcasting de WebSockets, php artisan install:broadcasting.

Nueva ruta de Health Check

Laravel 11 incluirá una nueva ruta de health check /up que dispara un DiagnosingHealthEvent para que puedas integrarte mejor con la monitorización del uptime.

Rotación de APP_KEY

En versiones anteriores de Laravel, si cambiabas tu APP_KEY podía provocar datos corruptos en la base de datos. Laravel 11 tiene una nueva rotación gradual que NO dañará los datos antiguos encriptados, utilizando una variable .env de lista delimitada por comas APP_PREVIOUS_KEYS. Volverá a encriptar automáticamente los datos usando la nueva clave.

Eliminación del Kernel de la consola

Se ha eliminando el Kernel de la consola, y podrás definir tus comandos de la consola directamente en routes/console.php.

Argumentos con nombre

Los argumentos con nombre no están cubiertos por las pautas de retrocompatibilidad de Laravel. Es posible que elijan cambiar el nombre de los argumentos de la función cuando sea necesario para mejorar la base de código de Laravel. Al llamar a los métodos de Laravel, usar argumentos con nombre se debe hacer con cautela y con el entendimiento de que los nombres de los parámetros pueden cambiar en el futuro.

Eager Load Limit

Laravel 11 integra el código del paquete "eager load limit"

1User::select('id', 'name')->with([
2 'articles' => fn($query) => $query->limit(5)
3])->get();

Nuevos comandos Artisan

Se han añadido nuevos comandos Artisan para permitir la creación rápida de clases, enums, interfaces y traits:

1php artisan make:class
2php artisan make:enum
3php artisan make:interface
4php artisan make:trait

Nueva página de bienvenida

img

Junto con grandes actualizaciones a Laravel, obtendremos una nueva página de bienvenida al crear una nueva aplicación.

Soporte mínimo de PHP 8.2

Esta fue una decisión temprana, pero las aplicaciones de Laravel 11 requieren un mínimo de PHP 8.2. Si estás ejecutando una versión anterior de PHP, ahora es un buen momento para actualizarla.

Se requiere SQLite 3.35.0+

Si usas una base de datos SQLite, entonces Laravel 11 requerirá SQLite 3.35.0 o superior.

Eliminación de Doctrine DBAL

Laravel ya no depende de Doctrine DBAL y registrar tipos Doctrines personalizados ya no es necesario para la creación y alteración adecuada de varios tipos de columna que anteriormente requerían tipos personalizados.

Instalar Laravel 11

La forma más fácil de instalar Laravel 11 es configurar primero el Instalador de Laravel:

1composer global require laravel/installer

Luego ejecuta:

1laravel new nombre-del-proyecto

Actualizar a Laravel 11

Laravel Shift es la forma más fácil de actualizar, pero también puedes seguir la guía de actualización en la documentación de Laravel

Política de soporte de Laravel

Para todas las versiones de Laravel, se ofrecen correcciones de errores durante 18 meses y correcciones de seguridad durante 2 años. Para todas las bibliotecas adicionales, incluyendo Lumen, solo la última versión principal recibe correcciones de errores.

VersiónPHP (*)LanzamientoCorrecciones de errores hastaCorrecciones de seguridad hasta
Laravel 98.0 - 8.28 de febrero de 20228 de agosto de 20236 de febrero de 2024
Laravel 108.1 - 8.314 de febrero de 20236 de agosto de 20244 de febrero de 2025
Laravel 118.2 - 8.312 de marzo de 20243 de septiembre de 202512 de marzo de

Conclusión

Laravel 11 trae consigo una serie de cambios y mejoras que lo convierten en una versión aún más potente, flexible y fácil de usar. Si estás buscando un framework PHP para tu próximo proyecto, Laravel 11 es una excelente opción.

¡Te animo a que explores todas las nuevas características y mejoras que ofrece Laravel 11!

Espero que este resumen te haya sido útil. Si tienes alguna pregunta o comentario, no dudes en dejarlo en los comentarios.

¡Hasta la próxima!

© 2025 por PHP Argentina 🐘.