Introduzione
Laravel Folio è un router basato sulle pagine che ti consente di definire le route semplicemente collocando file Blade. A differenza della definizione tradizionale centrata suroutes/web.php, riflette direttamente nell’URL la struttura del filesystem.
È particolarmente utile per siti orientati ai contenuti o per pannelli di amministrazione in cui vuoi aggiungere rapidamente pagine schermata per schermata.
Per aree che richiedono un controllo HTTP granulare, come le API, in pratica lo si affianca al routing tradizionale.
Installazione
Per prima cosa aggiungi Folio con Composer.folio:install registra il service provider di Folio.
Per impostazione predefinita la directory delle pagine è resources/views/pages/.
Se usi più directory di pagine o vuoi differenziare gli URI di base, configura Folio::path() e uri() nel metodo boot del service provider.
Creazione delle route
Folio genera automaticamente l’URL dal nome del file Blade posto sotto la directory montata.Route annidate
Annidando le directory, anche l’URL viene annidato con la stessa struttura.Route index
index.blade.php viene mappato sulla root della sua directory.
Parametri di route
Puoi ricevere segmenti di URL con[] nel nome del file.
....
Route model binding
Se usi il nome del modello, come[User].blade.php, la risoluzione del modello avviene automaticamente.
withTrashed() all’interno della pagina.
Scrivendo ad esempio
[Post:slug].blade.php, puoi risolvere il modello anche con chiavi diverse da id (ad esempio slug).Middleware
Per applicare un middleware solo a una pagina specifica, usamiddleware() all’interno del template della pagina.
Folio::path(...)->middleware().
Route con nome
Anche le pagine Folio possono avere un nome tramitename().
Definendo
name('users.show') in una pagina individuale come users/[User].blade.php, puoi generare l’URL parametrizzato con route('users.show', ['user' => $user]).route() puoi generare l’URL a partire dal nome della route.
Corrispondenza tra file e URL
Confronto con il routing tradizionale
| Caratteristica | Routing tradizionale | Folio |
|---|---|---|
| Definizione delle route | routes/web.php | Automatica dal nome del file |
| Controller | Necessario (o closure) | Non necessario (direttamente in Blade) |
| Casi d’uso adatti | API, SPA, controllo HTTP complesso | Siti di contenuto, pannelli di amministrazione |