El lanzamiento de la octava versión de Laravel vino de la mano de Laravel Jetstream, que es un conjunto de paquetes que conforman un punto de partida para la creación de proyectos con Laravel. Entre los paquetes que incluye Jetstream nos encontramos con Vue y con Tailwind, pudiendo escoger entre el uso de Laravel Livewire o de Laravel Inertia.
Contenidos
Introducción
Existen ciertos requisitos que tendrás que cumplir para seguir este tutorial, ya que utilizaremos tanto la línea de comandos como los gestores de paquetes composer y npm. A continuación puedes encontrar una serie de tutoriales que te servirán de ayuda:
- Node y npm: Tutorial de introducción a Node y npm
- Línea de comandos: Qué es y cómo se utiliza la línea de comandos
Si es la primera vez que usas Laravel, también puedes consultar la documentación oficial de Laravel.
Qué es Laravel Breeze
Laravel Jetstream supuso un enorme cambio en el ecosistema de Laravel que no gustó a muchos desarrolladores de la comunidad de Laravel, ya que se agregaba bastante complejidad al stack tan simple al que los desarrolladores estábamos acostumbrados. De hecho, la facilidad de uso de Laravel fue el motivo por el que apenas uso ya Zend Framework.
Debido a ello, el creador de Laravel, Taylor Otwell, lazó un nuevo paquete meses después llamado Laravel Breeze como alternativa a Jetstream que incluye una stack simplificada. De hecho, la única diferencia entre el famoso paquete Laravel UI y Laravel Breeze, es que Breeze incluye el framework CSS Tailwind en lugar de Bootstrap.
Laravel Breeze es un punto de partida para las aplicaciones creadas con Laravel que incluye los componentes y las vistas necesarias para la autenticación de usuarios. Breeze utiliza el motor Blade para las vistas y Tailwind como framework CSS.
Todas las rutas y los controladores han sido exportados directamente a la aplicación, por lo que a diferencia de Jetstream, podrás modificar los controladores y las vistas en todo momento del mismo modo que en las clásicas aplicaciones creadas con Laravel.
Si ya has usado Laravel Jetstream alguna vez, el uso de Breeze debería resultarte muy sencillo. En caso contrario, si ya has utilizado Laravel UI, bastará con que aprendas Tailwind.
Instalación de Laravel Breeze
Para instalar Laravel Breeze tendrás abrir la terminal y situarte en el directorio en el que está instalada la aplicación en la que quieres instalar Breeze. Luego sigue los pasos que se describen a continuación:
- Instala el paquete
laravel/breeze
usando composer:composer require laravel/breeze --dev
- Seguidamente, ejecuta el siguiente comando para instalar Breeze:
php artisan breeze:install
- Si la instalación finaliza correctamente, verás la siguiente salida por pantalla:
Breeze scaffolding installed successfully.
- A continuación vamos a instalar los paquetes de node necesarios:
npm install
- Y finalmente vamos a compilar los archivos
.scss
y.js
mediante el siguiente comando:npm run dev
Si ahora visitas con tu navagador la dirección local o de tu servidor en donde has instalado Laravel, podrás ver la página por defecto que se instala con Laravel Breeze.
Cómo utilizar Laravel Breeze
Una vez hayas instalado el Laravel Breeze, podrás encontrar los controladores, las vistas y las rutas en las localizaciones habituales. Vamos a explicar brevemente cada uno de estos apartados, así como los archivos y cambios que se agregan con Brezze.
Rutas
Las rutas que se utilizan para el login y el registro de los usuarios se encuentran en el archivo routes/auth.php
. En cuanto a las rutas estándar que no requieren autenticación, podrás encontrarlas en el archivo routes/web.php
.
En estos archivos encontrarás la ruta a la página de inicio de tu aplicación junto con las rutas de login
, register
, logout
y password-reset
.
Controladores
Del mismo modo que en las aplicaciones que usan Laravel UI, podrás encontrar los controladores encargados de realizar las tareas de registro, login y gestión de contraseñas en el directorio app/Http/Controllers/Auth/
.
Sin embargo, verás que ahora cada ruta incluye su propio controlador, en la línea de los controladores de una sola acción que se utilizan con Inertia o Livewire. No deja de ser un cambio menor:
- Sesión:
AuthenticatedSessionController.php
- Confirmar contraseña:
ConfirmablePasswordController.php
- Verificación de email:
VerifyEmailController.php
- Verificación de email: Notificación:
EmailVerificationNotificationController.php
- Verificación de email: Aviso:
EmailVerificationPromptController.php
- Cambiar contraseña:
NewPasswordController.php
- Resetear contraseña:
PasswordResetLinkController.php
- Usuario no registrado:
RegisteredUserController.php
Por el resto, todo sigue igual.
Vistas
Las vistas correspondientes a la gestión del registro, login y de las contraseñas de los usuarios están en el directorio resources/views/auth/
al igual que siempre:
- Login:
login.blade.php
- Registro:
register.blade.php
- Resetear contraseña:
reset-password.blade.php
- Verificación de email:
verify-email.blade.php
- Confirmación de contraseña:
confirm-password.blade.php
- Contraseña olvidada:
forgot-password.blade.php
La única diferencia que encontrarás en las vistas con respecto a Laravel UI es que ahora usan Tailwind en lugar de Bootstrap.
Alternativas a Laravel Breeze
Como alternativas a Laravel Breeze podrías usar los siguientes paquetes:
- Laravel UI: Laravel UI en Github
- Laravel Jetstream: Laravel Jetstream en GitHub
Recuerda que puedes echar un ojo a Laravel Breeze en su repositorio oficial de GitHub.
Esto ha sido todo.
Muy buenas Edu!
Me llamo Fran y, buscando temas acerca de las distintas opciones para realizar una autentificación con Laravel 8, he llegado a este post.
La opción que propones, usar breeze, parece muy sencilla y que sigue la estela y lo que había en las anteriores versiones de Laravel. Algo muy cómodo.
Pero he estado viendo que, como la intención de Taylor Otwell va encaminada a Jetstream, continuar usando el modulo Auth será problemático a futuro porque quedará obsoleto.
Además, para evitar este problema y que los programadores no le odiasemos del todo, se dejó a parte Laravel Fortify para todo lo que antes se hacía con Auth.
Todo esto lo digo porque quería preguntarte si lo habías probado y, en caso de haberlo hecho, si te parece una buena opción.
Ya me dices.
Muchas gracias!
Un saludo,
Fran.
Hola Fran. Pues ahora mismo estoy trabajando en dos proyectos. En uno uso JetStream con Inertia y en otro uso la clásica combinación del módulo Auth + BootStrap.
Según he estado leyendo, en efecto, Breeze puede que en el futuro se quede obsoleto, pero esto pasará con todo. Personalmente, me parece que JetStream está algo encorsetado, por decirlo de algún modo.
Si hubiese comenzado el proyecto con Inertia ahora, hubiese creado una web con React o con Vue (o Nuxt) y la hubiese integrado con una API creada con Laravel o con Lumen. Vamos, la filosofía JamStack, que es hacia donde creo que se dirige todo esto.
Acerca de Breeze, sí me parece una buena opción si te gusta Tailwind. Si nunca lo has usado, al principio me odiarás por esta recomendación, especialmente cuando tu código esté desbordado de clases CSS.
Mi recomendación es que uses lo que ya conoces pero a ser posible introduzcas algún elemento nuevo. Así, de usar otro sistema en el futuro, siempre será más llevadera la migración. Y además habrás aprendido algo nuevo.
Gracias por la guía, fue muy útil y fácil seguir los pasos