Introduction
Laravel Folio est un routeur orienté pages qui vous permet de définir des routes simplement en plaçant des fichiers Blade. Contrairement à la définition traditionnelle centrée surroutes/web.php, la structure du système de fichiers se reflète directement dans les URL.
Folio est particulièrement utile pour les sites axés sur le contenu ou les back-offices où vous souhaitez ajouter rapidement de nouvelles pages.
Pour les zones nécessitant un contrôle HTTP fin, comme les API, il est pragmatique de le combiner avec le routage classique.
Installation
Ajoutez d’abord Folio via Composer.folio:install enregistre le service provider de Folio.
Par défaut, resources/views/pages/ devient le répertoire des pages.
Pour utiliser plusieurs répertoires de pages ou différentes URI de base, configurez Folio::path() et uri() dans la méthode boot d’un service provider.
Création de routes
Folio génère automatiquement les URL à partir des noms de fichiers Blade situés sous le répertoire monté.Routes imbriquées
Lorsque vous imbriquez des répertoires, les URL sont imbriquées selon la même structure.Route d’index
index.blade.php est associé à la racine de son répertoire.
Paramètres de route
Les crochets[] dans le nom de fichier permettent de recevoir un segment d’URL.
....
Route model binding
En utilisant un nom de modèle comme[User].blade.php, la résolution du modèle est automatique.
withTrashed() dans la page.
En écrivant
[Post:slug].blade.php, vous pouvez résoudre le modèle avec une clé autre que id (par exemple slug).Middleware
Pour appliquer un middleware à une page spécifique uniquement, utilisezmiddleware() dans le template.
Folio::path(...)->middleware().
Routes nommées
Vous pouvez également attribuer un nom de route aux pages Folio avecname().
En définissant
name('users.show') dans une page individuelle telle que users/[User].blade.php, vous pouvez générer une URL avec paramètre via route('users.show', ['user' => $user]).route().
Correspondance fichiers / URL
Comparaison avec le routage classique
| Caractéristique | Routage classique | Folio |
|---|---|---|
| Définition de route | routes/web.php | Automatique via le nom de fichier |
| Contrôleur | Requis (ou closure) | Non requis (directement dans Blade) |
| Cas d’usage | API, SPA, contrôle HTTP complexe | Sites de contenu, back-offices |