Laravel 11 ya está lanzado
Laravel 11 ya está lanzado, incluyendo un mínimo de PHP v8.2, un nuevo paquete Laravel Reverb, estructura de directorios optimizada y más...
Estructura de directorio optimizada
Los controladores ya no amplían nada de forma predeterminada.
No más directorio de middleware. Actualmente, Laravel incluye nueve middleware y muchos de ellos nunca los personalizarías. Sin embargo, si desea personalizarlos, se mueve a la aplicación/proveedor de servicios. Por ejemplo:
public function boot(): void
{
EncryptCookies::except(['some_cookie']);
}
No más HTTP/Kernel
La mayoría de las cosas que antes podías hacer en el Kernel, ahora puedes hacerlas en Bootstrap/App.
return Application::configure()
->withProviders ()
-›withRouting(
web: __DIR__.'/../routes/web.php'
commands: __DIR__.'/../routes/console.php',
)
->withMiddleware(function(Middleware Smiddleware) {
$middleware->web(append: LaraconMiddleware::class):
})
Cambios en el modelo
Las conversiones de modelos ahora se definen como un método en lugar de una propiedad. Cuando se define como un método, podemos hacer otras cosas, como llamar a otros métodos directamente desde las conversiones. Aquí hay un ejemplo que utiliza una nueva AsEnumCollection
de Laravel 11:
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options'=› AsEnumCollection::of(UserOption::class),
];
}
Cambios de configuración
Laravel tiene muchos archivos de configuración, Laravel 11 los elimina y todas las opciones de configuración caen en cascada. El .env se ha ampliado para incluir todas las opciones que desee configurar.
Para combinar con esto, hay un nuevo comando config:publish para que pueda recuperar cualquier configuración que desee. Incluso si las recupera, la nueva función de cascada le permite eliminar todas las opciones que no desea personalizar.
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 trasladadas a solo dos archivos.
Cambios de rutas
De forma predeterminada, sólo habrá dos archivos de ruta, console.php y web.php. Las rutas API ahora se habilitarán a través de php artisan install:api
, brindándole el archivo de rutas API y Laravel Sanctum.
Lo mismo con la transmisión por websocket, php artisan install:broadcasting
.
Kernel de consola eliminado
El kernel de la consola se está eliminando y, en su lugar, podrá definir los comandos de su consola directamente en routes/console.php
.
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á ejecutando una versión anterior de PHP, ahora es un buen momento para actualizarla.