- #laravel-folio
- #laravel
Laravel Folio: Nuevo sistema de rutas basado en archivos
Escrito por Jhon Achata el 5 de octubre de 2023
Introducción
Laravel Folio es un nuevo sistema de rutas automático basado en archivos y directorios, diseñado para simplificar el sistema de rutas en aplicaciones de Laravel.
Al igual que frameworks como Astro, NextJS, NuxtJS u otros, donde para crear una página solo necesitamos crear un archivo en un directorio pages
, Laravel Folio tiene la misma funcionalidad para aprovecharla en laravel.
Por ejemplo si queremos tener una página de contacto
, solo debemos crear el archivo de blade contacto.blade.php
en la carpeta resources/views/pages
. Y desde el navegador ya podremos acceder a la página desde /contacto
.
Instalación
Para integrar Laravel Folio en nuestra aplicación debemos tener en cuentas los siguientes requerimientos:
- PHP 8.1 o superior
- Laravel 10.19 o superior
Una vez cumplidos estos requerimientos procedemos a la instalación (también puedes consultar la documentación oficial).
En la consola ejecutamos los siguientes comandos:
El comando php artisan folio:install
agregará el provider FolioServiceProvider
en nuestro código, este es el archivo donde podemos realizar configuraciones respecto a Laravel Folio:
Por ejemplo si queremos cambiar la carpeta de donde se servirán las páginas.
El comando php artisan make:folio
Al instalar Laravel Folio también estará disponible el comando de artisan make:folio
, con el que de forma simplificada podremos crear nuevas páginas
Crear páginas
Ahora podemos crear nuevas paginas, por ejemplo una página para nuestros proyectos.
Ahora tenemos el archivo de blade resources/views/pages/proyectos.blade.php
También podemos acceder desde la ruta /proyectos
y ver el contenido.
Crear páginas anidadas
Otro uso del comando de artisan make:folio
, es que podemos usarlo para crear páginas anidadas, por ejemplo para la ruta /usuario/perfil
debemos usar lo siguiente:
Páginas dinámicas
Si queremos tener una ruta dinámica, por ejemplo: /peliculas/[id]
, podemos lograrlo con el siguiente comando:
En el archivo de blade podremos acceder a la variable id
Route Model Binding
También podemos asociar modelos en las rutas, unicamente debemos agregar el nombre del modelo a usar en la variable dinámica:
En la vista podremos acceder a los datos del modelo:
Usando middlewares
Middleware global
Podemos configurar los middlewares de forma global desde el archivo FolioServiceProvider.php
:
Middleware local
También podemos configurar middlewares por cada página:
Listando las rutas de Laravel Folio
Para listar las rutas de Laravel Folio podemos usar el siguiente comando: