Las Novedades que trae Laravel 6
En esta página:
El día 3 de Setiembre de 2019 se ha lanzado la versión de Laravel 6, en este articulo te voy a contar todas las novedades que trae esta nueva versión, esta versión trae cambios significativos y buenos para los Desarrolladores que usan este Framework, como su nuevo versionado sobre LTS, nuevos comandos y herramientas útiles, vamos con este Artículo.
Esta nueva versión de Laravel 6 trae consigo un nuevo Logo el cual puedes ver en la imagen de arriba, así mismo un nuevo diseño de su Página web y por ende un cambio en todo el Branding y extensiones de este Framework
Veamos ahora las novedades técnicas que trae consigo esta versión de Laravel
Laravel UI
Las Vistas Front son una parte muy importante en un proyecto, en versiones anteriores de Laravel específicamente las 5.x se podía usar por ejemplo el Scaffolding de Vue con Bootstrap para crear las interfaces Front dentro del mismo Framework.
En esta nueva versión de Laravel, estas herramientas se han separado y están dentro de un nuevo paquete llamado Laravel UI el cual puedes instalarlo mediante Composer.
Si deseas más información sobre como instalarlo y demás detalles, puedes leer la documentación oficial de Laravel 6
Por ejemplo si deseas usar Bootstrap y Vue puedes ejecutar los siguientes comandos para instalarlos
1 2 3 4 5 |
composer require laravel/ui php artisan ui vue --auth |
Esta versión también tiene soporte para trabajar con React.
Lazy Collections
Las Colecciones Lazy ahora te permiten trabajar con Colecciones extensas de Datos, incluidas las Colecciones de modelos Eloquent, la clase LazyCollection puede ser llamada de la siguiente manera
1 2 3 4 5 6 7 8 9 |
// Trait LazyCollectionclase use Illuminate\Support\LazyCollection; ... ... ... |
Este saca provecho a los generadores de PHP para llevar a cabo el trabajo con grandes conjuntos de Datos que usan mucha memoria.
Por ejemplo si una aplicación necesita procesar un archivo de datos de varios Gigabytes, normalmente Laravel leía todo el archivo almacenándolo en la memoria usando colecciones tradicionales
1 2 3 4 5 |
$postres = App\Postres::all()->filter(function ($postre) { return $postre->id > 875; }); |
A continuación filter no se ejecuta hasta que iteramos sobre cada registro individualmente, esto permite una gran reducción en el uso de la Memoria. Si deseas aprender más sobre LazyCollection, puedes leer la documentación oficial.
Job Middleware
Este nuevo Middleware es un aporte creado por Taylor Otwell, creador del Framework Laravel, este Middleware permite que los Jobs (Tareas / Trabajos) se ejecuten a través de un Middleware.
1 2 3 4 5 6 7 8 9 |
public function middleware() { return [new AlgunMiddleware]; } // Colocamos el Middleware al realizar el trabajo SomeJob::dispatch()->through([new AlgunMiddleware]); |
El Job Middleware proporciona una ubicación conveniente para ajustar los trabajos (Jobs) en cierta lógica antes de que se ejecuten.
Mejoras en las Respuestas de Autorización
En versiones anteriores era complicado proporcionar mensajes de error personalizados a los usuarios sobre alguna autorización en Laravel, en esta nueva versión se ha introducido el método Gate::inspect que proporciona una respuesta sobre la política de autorización en un Proyecto
1 2 3 4 5 6 7 8 9 10 11 |
$response = Gate::inspect('view', $postre); if ($response->allowed()) { // El usuario esta autorizado para ver el postre } if ($response->denied()) { echo $response->message(); } |
Después del método Gate::inspect decidimos que mensaje y acción realizar tanto si el usuario es autorizado o denegado.
Versiones Semánticas
Laravel 6 y posteriores versiones se acoplan al Sistema de versiones Semánticas, esto hace que el Framework se alinee a las versiones de otros paquetes que son usados para Desarrollar un proyecto junto con Laravel. Ahora el ciclo de lanzamiento de Laravel permanecerá sin cambios.
Los otros paquetes para trabajar con Laravel ya usan este sistema de versiones Semánticas.
Describiré lo que significa la imagen:
Mayor
Cuando este número cambia a una nueva versión, significa que se ha realizado un cambio muy grande en Laravel, las versiones anteriores pasan a ser incompatibles con la nueva versión.
Menor
Cuando este número cambia a una nueva versión, significa que se agregaron nuevas funcionalidades a Laravel, pero aún sigue siendo compatible con la versión anterior.
Revisión
Cuando este número cambia, mantiene la compatibilidad con las versiones anteriores de Laravel, se corrigen Bugs y aspectos estéticos de Laravel.
Prelanzamiento
Esta etiqueta es opcional, sirve para determinar una versión estable (Alpha) o de Prueba (Beta) del Framework Laravel, se usa mayormente para el entorno de Desarrollo y creación de nuevas características de Laravel, suele ser usado mucho por los Desarrolladores que dan soporte a Laravel Framework.
Si quieres saber más sobre el Versionado Semántico, puedes visitar el siguiente enlace.
Versión LTS (Long Term Support)
A partir de la versión 6 de Laravel se llevará a cabo un versionado LTS, que contará con correcciones de errores hasta el 3 de Setiembre de 2021 (2 años) y correcciones de seguridad hasta el 3 de Setiembre de 2022 (3 años).
Por si no sabias Laravel 5.5 fue la versión LTS anterior, solo que Laravel lo usaba como información interna, Laravel 5.5 aun mantiene correcciones de Seguridad hasta el 30 de Agosto de 2020.
LTS significa Long Term Support que en español significa Soporte a Largo Plazo y es la nueva forma en que los Desarrolladores de Laravel darán soporte a este Framework.
A continuación todas las versiones de Laravel con la fecha de lanzamiento, fecha límite de Correcciones de errores y la fecha límite de Soluciones de Seguridad
Compatibilidad con Vapor
Laravel 6 ofrece una completa compatibilidad con la plataforma Laravel Vapor, mediante esta plataforma puedes implementar de manera escalable e intuitiva un Proyecto creado con Laravel 6 en el servicio AWS Lambda de Amazon y usar las aplicaciones que dispone como colas SQS, Bases de Datos, Clústeres, Redis, CloudFront CDN y más.
Nueva Página con Detalles de Errores
La página de errores en Laravel 6 ahora es gestionada con Ignition, una página que ofrece detalles de excepciones y errores en un proyecto, esta herramienta es Open Source y fue desarrollada por Freek Van der Herten y Marcel Pociot.
Ignition brinda muchos beneficios con respecto a versiones anteriores de Laravel, por ejemplo brinda un archivo con mejores datos de errores en una vista Blade, también muestra el número de la línea del código en donde esta el error, ofrece soluciones ejecutables para problemas comunes, permite la edición de código, uso compartido de excepciones y una mejor Experiencia para el usuario.
Mejora en las Subconsultas Eloquent
En esta versión de Laravel se ha incorporado mejoras en las subconsultas a la Base de Datos, por ejemplo imagina que tenemos una tabla postres y una tabla llamada clientes en una Base de Datos.
Mediante la nueva forma de selección de consultas de Laravel 6, podemos seleccionar toda la tabla postres y el nombre del cliente que compro recientemente un determinado Postre usando una sola consulta
1 2 3 4 5 6 7 |
return Postres::addSelect(['ultimo_postre' => Flight::select('nombre') ->whereColumn('postre_id', 'postre.id') ->orderBy('comprado_fecha_hora', 'desc') ->limit(1) ])->get(); |
Asimismo podemos usar nuevas funciones de subconsultas añadidas a la función orderBy, la cual ayuda a ordenar todos los postres según el ultimo usuario que compro dicho Postre
1 2 3 4 5 6 7 8 |
return Destination::orderByDesc( Flight::select('ultimo_postre') ->whereColumn('postre_id', 'postre.id') ->orderBy('comprado_fecha_hora', 'desc') ->limit(1) )->get(); |
Bueno hasta la fecha de este artículo, estas son las Novedades que trae esta nueva versión de Laravel número 6, con el paso de las Meses iremos viendo nuevas novedades sobre este Framework.
Nota
- Algunas Novedades pueden cambiar, modificarse o ser eliminadas en un futuro, esto no depende de nosotros, si no de los Desarrolladores que dan soporte a Laravel, que suelen cambiar las funcionalidades de Laravel en futuras versiones.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Laravel
- 04-09-2019
- 13-09-2019
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)