post details thumb

¡Laravel 8 llego con todo!

Ahora que ya tenemos disponible la nueva versión mayor de uno de los mejores frameworks de PHP, finalmente a llegado la hora de comentarte todas las novedades que nos ofrece Laravel 8.

¿Qué pasa con Laravel 7, 6 y versiones anteriores?

Si tienes proyectos con Laravel 7 o 6 todavía tienes tiempo de actualizarlos a Laravel 8. Laravel 7 tendrá soporte de correcciones de errores hasta el 10 de septiembre de 2020 y correcciones de seguridad hasta el 3 de marzo de 2021.

Por otro lado, Laravel 6 es la versión LTS hasta la fecha. Esto quiere decir que se continuará brindando soporte para la corrección de errores hasta el 3 de Septiembre del 2021 y problemas de seguridad hasta el 3 de Septiembre del 2022.

Versiones anteriores a la versión 6 quedaron fuera de soporte oficial. Te recomendaría que te des un tiempito para actualizar tus proyectos, aunque sea a Laravel 6, y dejar de acumular deuda técnica.

Nuevas características de Laravel 8

Laravel 8 viene con varias características que sin duda mejorarán la velocidad que desarrollamos proyectos, como así también, la calidad de los mismos.

Nombremos cada una de las nuevas características y luego entraremos en detalle:

  • Laravel Jetstream.
  • Carpeta para los Modelos.
  • Clases para Factories.
  • Squashing de migraciones.
  • Jobs por lotes.
  • Rate limit mejorado.
  • Modo de mantenimiento mejorado.
  • Time testing helpers.
  • Paginación con Tailwind por defecto.

 

Laravel Jetstream

Laravel Jetstream nos permite crear un nuevo proyecto de Laravel con todo lo básico que tiene cualquier proyecto web: inicio de sesión, registración de usuarios, verificación de correo electrónico y hasta autenticación de dos pasos.

También incluye Laravel Sanctum para realizar tus APIs y una nueva excelente característica como es la administración de roles y permisos de forma integrada.

Por el lado del frontend, Laravel Jetstream integra Tailwind CSS y la posibilidad de instalar automáticamente Livewire o Inercia en nuestro proyecto.

Cabe decir que todas las características son opcionales y Jetstream nos dará la opción para instalar las que deseemos. También, tiene un archivo de configuración para habilitar o deshabilitar las características que queramos.

Viene con un dashboard como pagina principal de tu proyecto que podes usar como punto de partida para crear nuevas vistas.

También viene con toda la lógica para las fotos de perfil de tus usuarios y te olvidas de desarrollar esta característica que es tan común en todos los proyectos web.

Te dejo la documentación de Laravel Jetstream para que veas con más detalle todas sus features.

Carpeta para los Modelos

Esto es algo que parece que Tailor no termina de decidirse. Y por eso hizo una encuesta en Twitter para saber si las personas crean una carpeta Models/ para poner todos sus modelos o no. Y la mayoría voto que así era. Por lo tanto, en Laravel 8 vuelva la carpeta Models/ que se había sacado en versiones anteriores de Laravel.

Se actualizaron todos los comando de Laravel que crean modelos para que se creen los archivos en app/Models/ por defecto.

Clases para Factories

Hasta Laravel 7.x las Factories eran un archivo plano de php donde teníamos un objeto $factory inyecto de una forma mágica y, a través de él, desarrollábamos nuestra factory.

Ahora, las fabricas se reescribieron totalmente y se basan en clases en lugar de un simple archivo php. 

Ahora que las factories son clases de PHP vamos a poder agregar métodos a nuestras clases para una mejor organización. Como así también, utilizar clases externas para darle mas «superpoderes» a nuestras factories.

También se creo Laravel Legacy Factories para brindar soporte para la generación de fábricas de versiones anteriores de Laravel (<= 7.x) para Laravel 8.x.

Squashing de migraciones

Es muy común que en nuestros proyectos tengamos muchos archivos de migraciones. Por eso, Laravel 8 integra el comando schema:dump para integrar todas las migraciones en único archivo SQL.

Cuando ejecutes schema:dump, Laravel generará un archivo «schema» en la carpeta database/schema. Ahora, cuando intentes migrar tu base de datos y no se hayan ejecutado otras migraciones, Laravel ejecutará primero el SQL del archivo de schema. Después de ejecutar los comandos del archivo, Laravel ejecutará las migraciones restantes que no estaban en el archivo schema.

Jobs por lotes

Ahora Laravel nos permitirá ejecutar un lote de jobs y luego realizar alguna acción cuando el lote se haya completado. 

Rate limit mejorado

La limitación de requests de Laravel se ha mejorado con más flexibilidad y potencia, manteniendo la compatibilidad con versiones anteriores.

Ahora tenemos la fachada RateLimiter con el método for()que nos permite distintas características. Por ejemplo, podríamos limitar la cantidad de request por minuto a un endpoint en particular.

Modo de mantenimiento mejorado

En versiones anteriores de Laravel, el comando php artisan down permitia habilitar el acceso a la aplicación especificando una «lista blanca» de direcciones IP. Esta característica se ha eliminado en favor de una solución más simple a base de «tokens».

Time testing helpers

Siempre es todo un tema el testing cuando tenemos horas involucradas. Por eso, Laravel 8 viene con distintas funciones para ayudarnos a manipular la hora actual.

Paginación con Tailwind

El paginador de Laravel se ha actualizado para utilizar el framework CSS Tailwind de forma predeterminada. Igualmente, no te preocupes porque las vistas con Bootstrap 3 y 4 siguen disponibles.

Migración a Laravel 8

La migración a Laravel 8 es bastante simple y, según la documentación de Laravel, lleva al rededor de 15 minutos.

También debes tener en cuenta que Laravel 8 funciona con PHP 7.3 en adelante. Así que es algo ha tener en consideración para los paquetes de terceros que hayas instalado en tu proyecto.

Te dejo la documentación oficial para actualizar a Laravel 8: https://laravel.com/docs/8.x/upgrade

Artículos relacionados

Comentarios del artículo