Skip to main content

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 sur routes/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.
Pour recevoir plusieurs segments, utilisez ....

Route model binding

En utilisant un nom de modèle comme [User].blade.php, la résolution du modèle est automatique.
Pour prendre en charge également les modèles supprimés en douceur, appelez 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, utilisez middleware() dans le template.
Pour appliquer un middleware en masse à plusieurs pages, utilisez Folio::path(...)->middleware().

Routes nommées

Vous pouvez également attribuer un nom de route aux pages Folio avec name().
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]).
Les noms de routes attribués permettent de générer des URL avec le helper route().

Correspondance fichiers / URL

Comparaison avec le routage classique

Même avec Folio, activer le cache de routes via php artisan route:cache permet d’optimiser les performances en production.
Dernière modification le 13 juillet 2026