Le routage constitue l’un des piliers fondamentaux du développement avec Laravel.
Il représente le point d’entrée de toute requête et détermine avec précision la manière dont l’application réagit face aux actions des utilisateurs.
Comprendre ce mécanisme est indispensable pour concevoir des applications web claires, structurées et faciles à maintenir.
Dans le cadre des études en développement web ou de la préparation à des examens techniques, la maîtrise du routage permet de mieux appréhender l’architecture globale d’une application moderne.
Les notions abordées ici couvrent la définition des routes, l’utilisation des verbes HTTP, la gestion des paramètres dynamiques et l’organisation du code à travers des contrôleurs.
Elles illustrent également l’importance des bonnes pratiques, comme la séparation des responsabilités et la lisibilité du code.
Cette page a pour objectif d’accompagner l’apprenant dans la compréhension progressive de ces concepts essentiels, en posant des bases solides et durables pour la suite de son apprentissage avec Laravel.
Le routage constitue l’un des piliers fondamentaux du développement avec Laravel.
Il représente le point d’entrée de toute requête et détermine avec précision la manière dont l’application réagit face aux actions des utilisateurs.
Comprendre ce mécanisme est indispensable pour concevoir des applications web claires, structurées et faciles à maintenir.
Dans le cadre des études en développement web ou de la préparation à des examens techniques, la maîtrise du routage permet de mieux appréhender l’architecture globale d’une application moderne.
Les notions abordées ici couvrent la définition des routes, l’utilisation des verbes HTTP, la gestion des paramètres dynamiques et l’organisation du code à travers des contrôleurs.
Elles illustrent également l’importance des bonnes pratiques, comme la séparation des responsabilités et la lisibilité du code.
Cette page a pour objectif d’accompagner l’apprenant dans la compréhension progressive de ces concepts essentiels, en posant des bases solides et durables pour la suite de son apprentissage avec Laravel.
QCM
1
Corrigé
Dans quel fichier définit-on généralement les routes destinées à l'interface Web d'une application Laravel ?
A. routes/api.php
B. routes/web.php
C. routes/console.php
D. app/Http/routes.php
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Le fichier routes/web.php est dédié aux routes qui gèrent les sessions et la protection CSRF pour le navigateur.
QCM
2
Corrigé
Quelle méthode de la façade Route est utilisée pour traiter la soumission d'un formulaire de création ?
A. Route::get()
B. Route::put()
C. Route::post()
D. Route::patch()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La méthode POST est le standard HTTP pour envoyer des données vers le serveur afin de créer une ressource.
QCM
3
Corrigé
Comment définit-on un paramètre obligatoire dans une URL (ex: l'ID d'un article) ?
A. Route::get('/post/{id}', ...)
B. Route::get('/post/:id', ...)
C. Route::get('/post/$id', ...)
D. Route::get('/post/[id]', ...)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Laravel utilise les accolades {} pour identifier les segments dynamiques dans une URI.
QCM
4
Corrigé
Quel symbole permet de rendre un paramètre de route optionnel ?
A. Le signe plus (+)
B. L'astérisque (*)
C. L'esperluette (&)
D. Le point d'interrogation (?)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Placer un '?' à la fin d'un paramètre (ex: {name?}) le rend facultatif dans l'URL.
QCM
5
Corrigé
Quelle méthode permet de donner un nom spécifique à une route pour la référencer facilement ?
A. ->alias()
B. ->name()
C. ->id()
D. ->set()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
La méthode name() permet de générer des URL ou des redirections via le nom de la route plutôt que l'URL brute.
QCM
6
Corrigé
Quelle syntaxe est correcte pour lier une route à une méthode d'un contrôleur dans Laravel 10+ ?
A. Route::get('/', 'UserController@index');
B. Route::get('/', [UserController::class, 'index']);
C. Route::get('/', UserController::index);
D. Route::get('/', 'UserController.index');
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
L'utilisation d'un tableau avec le nom de la classe et le nom de la méthode est la syntaxe recommandée.
QCM
7
Corrigé
Quelle commande Artisan permet de lister toutes les routes enregistrées dans l'application ?
A. php artisan route:list
B. php artisan show:routes
C. php artisan route:all
D. php artisan debug:routes
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
route:list affiche un tableau complet avec les méthodes, URI, noms et middlewares de chaque route.
QCM
8
Corrigé
Comment grouper plusieurs routes pour leur appliquer un préfixe commun (ex: /admin/...) ?
A. Route::prefix('admin')->group(function() { ... });
B. Route::folder('admin')->group(function() { ... });
C. Route::start('admin')->group(function() { ... });
D. Route::path('admin')->group(function() { ... });
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
La méthode prefix() évite de répéter le même segment d'URL pour un ensemble de routes.
QCM
9
Corrigé
Que fait la méthode Route::redirect('/old', '/new') ?
A. Elle crée une copie de la page '/old' vers '/new'.
B. Elle affiche le contenu de '/new' tout en gardant l'URL '/old'.
C. Elle renvoie automatiquement l'utilisateur vers '/new' s'il accède à '/old'.
D. Elle supprime la route '/old'.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Route::redirect est un raccourci pratique pour gérer les redirections HTTP sans passer par un contrôleur.
QCM
10
Corrigé
Quel verbe HTTP est utilisé pour mettre à jour partiellement une ressource existante ?
A. POST
B. DELETE
C. GET
D. PATCH
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
PATCH est destiné aux modifications partielles, tandis que PUT est généralement utilisé pour remplacer une ressource.
QCM
11
Corrigé
Comment limiter un paramètre de route pour qu'il n'accepte que des chiffres ?
A. ->whereNumber('id')
B. ->only('0-9')
C. ->numeric('id')
D. ->where('id', '[0-9]+')
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
La méthode where() permet de valider un paramètre à l'aide d'une expression régulière.
QCM
12
Corrigé
Quelle méthode de route répond à tous les verbes HTTP (GET, POST, etc.) ?
A. Route::all()
B. Route::any()
C. Route::every()
D. Route::mix()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Route::any() est utile pour certains scénarios où une seule logique doit traiter plusieurs types de requêtes.
QCM
13
Corrigé
Quelle est la fonction d'un 'Middleware' dans le routage ?
A. Générer le code HTML de la page.
B. Filtrer ou inspecter les requêtes entrantes avant qu'elles n'atteignent le contrôleur.
C. Stocker les données dans la base de données.
D. Définir le design CSS de la route.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Les middlewares sont souvent utilisés pour l'authentification ou la vérification des permissions.
QCM
14
Corrigé
Que signifie l'injection de dépendances dans une méthode de contrôleur liée à une route ?
A. Ajouter des virus dans le code.
B. Passer automatiquement des objets (comme Request) en paramètres de la méthode.
C. Importer manuellement tous les fichiers PHP nécessaires.
D. Connecter le contrôleur à une API externe.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Laravel résout automatiquement les classes typées dans les signatures des méthodes de contrôleur.
QCM
15
Corrigé
Quelle méthode permet de définir toutes les routes standards d'un contrôleur de ressources en une ligne ?
A. Route::all('photos', PhotoController::class);
B. Route::crud('photos', PhotoController::class);
C. Route::resource('photos', PhotoController::class);
D. Route::api('photos', PhotoController::class);
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Route::resource génère automatiquement les routes pour index, create, store, show, edit, update et destroy.
QCM
16
Corrigé
Par défaut, les routes définies dans routes/api.php sont préfixées par :
A. /web
B. /api
C. /rest
D. /json
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Laravel applique automatiquement le préfixe '/api' aux routes définies dans ce fichier via le RouteServiceProvider.
QCM
17
Corrigé
Comment récupérer la valeur d'un paramètre {id} dans une méthode de contrôleur ?
A. En l'ajoutant comme argument à la méthode : public function show($id)
B. En utilisant $_GET['id']
C. En appelant la fonction get_id()
D. En le cherchant dans le fichier .env
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Laravel fait correspondre les noms des paramètres de la route avec les arguments de la méthode du contrôleur.
QCM
18
Corrigé
Quelle méthode de route est utilisée pour supprimer une donnée ?
A. Route::remove()
B. Route::drop()
C. Route::delete()
D. Route::destroy()
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La méthode DELETE correspond au verbe HTTP standard pour la suppression de ressources.
QCM
19
Corrigé
Peut-on retourner une vue directement depuis une route sans passer par un contrôleur ?
A. Non, c'est impossible.
B. Oui, via Route::view('/url', 'nom_de_la_vue');
C. Oui, mais seulement pour les pages d'erreur.
D. Seulement si la vue est vide.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Route::view est idéal pour les pages statiques ne nécessitant pas de logique complexe.
QCM
20
Corrigé
Que se passe-t-il si deux routes ont la même URI dans le même fichier ?
A. Laravel affiche une erreur critique immédiate.
B. La première route définie sera toujours celle utilisée.
C. Les deux routes fusionnent leur logique.
D. La dernière route définie écrase la précédente.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Dans Laravel, les définitions de routes lues en dernier remplacent les précédentes pour une même URI et un même verbe.
QCM
21
Corrigé
Quelle méthode permet de restreindre l'accès à un groupe de routes aux utilisateurs connectés ?
A. ->middleware('auth')
B. ->secure()
C. ->locked()
D. ->check('user')
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Le middleware 'auth' est le filtre standard de Laravel pour vérifier l'authentification.
QCM
22
Corrigé
Quelle façade est utilisée pour définir les routes ?
A. Path
B. Url
C. Route
D. Request
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
La façade Route est le point d'entrée principal pour toutes les déclarations de navigation.
QCM
23
Corrigé
Comment renvoyer une réponse JSON directement depuis une closure de route ?
A. return response()->json(['key' => 'value']);
B. return json_encode(['key' => 'value']);
C. return ['key' => 'value'];
D. Les deux réponses 1 et 3 sont correctes.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
Laravel convertit automatiquement les tableaux retournés par les routes en réponses JSON.
QCM
24
Corrigé
À quoi sert la méthode Route::match(['get', 'post'], '/', ...) ?
A. À comparer deux routes différentes.
B. À autoriser plusieurs verbes HTTP spécifiques pour une même route.
C. À vérifier si une URL correspond à un fichier réel.
D. À forcer une connexion sécurisée HTTPS.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
match() est utile quand une action de contrôleur peut gérer à la fois l'affichage et la soumission d'un formulaire.
QCM
25
Corrigé
Que signifie le 'Fallback routing' dans Laravel ?
A. Une route utilisée pour revenir à la page précédente.
B. Une route de secours si la base de données est hors ligne.
C. Une route exécutée lorsqu'aucune autre route ne correspond à l'URL demandée (404 personnalisée).
D. Une sauvegarde automatique des routes.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
C
Justification :
Route::fallback() permet de définir une logique personnalisée pour les erreurs 404.
QCM
26
Corrigé
Comment passer plusieurs middlewares à une seule route ?
A. ->middleware('mid1', 'mid2')
B. ->middleware(['mid1', 'mid2'])
C. ->addMiddleware('mid1')->addMiddleware('mid2')
D. Les réponses 1 et 2 sont acceptées par Laravel.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
La méthode middleware() accepte soit une liste d'arguments, soit un tableau de chaînes.
QCM
27
Corrigé
Quelle méthode permet de lier un modèle directement à un paramètre de route (Route Model Binding) ?
A. Laravel le fait automatiquement si l'argument du contrôleur est typé par la classe du modèle.
B. Il faut appeler Route::bind() manuellement dans chaque route.
C. C'est une option à activer dans le fichier .env.
D. Il faut utiliser l'attribut ID uniquement.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
En typant l'argument (ex: User $user), Laravel injecte automatiquement l'instance correspondant à l'ID dans l'URL.
QCM
28
Corrigé
Pour les API, quelle méthode génère les routes de ressources SANS les méthodes 'create' et 'edit' ?
A. Route::resource()->except(['create', 'edit'])
B. Route::apiResource()
C. Route::slimResource()
D. Les réponses 1 et 2 sont valides.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
D
Justification :
apiResource est un raccourci qui exclut les routes renvoyant des formulaires HTML, inutiles pour une API.
QCM
29
Corrigé
Dans un groupe de routes, quelle méthode permet de spécifier le contrôleur pour toutes les routes du groupe ?
A. Route::controller(UserController::class)->group(...)
B. Route::use(UserController::class)->group(...)
C. Route::main(UserController::class)->group(...)
D. Route::attach(UserController::class)->group(...)
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
A
Justification :
Cette fonctionnalité (Laravel 9+) simplifie la définition en ne précisant que le nom de la méthode dans le groupe.
QCM
30
Corrigé
Quelle est la limite principale de définir toute la logique métier directement dans les closures de routes ?
A. Cela ralentit le chargement des pages.
B. Cela empêche l'utilisation du cache des routes (route:cache).
C. C'est interdit par le langage PHP.
D. Les closures ne peuvent pas accéder à la base de données.
Afficher la réponse
Cliquez pour voir la correction
Réponse correcte :
B
Justification :
Laravel ne peut pas mettre en cache les routes qui utilisent des fonctions anonymes (closures).
Mots & Définitions
Consultez les définitions des termes importants.
Le routage désigne le mécanisme qui permet d’associer une URL à une action précise de l’application. Il joue un rôle central dans la gestion des requêtes entrantes et dans l’organisation logique du code.
Une route définit comment une application réagit lorsqu’une URL spécifique est demandée. Elle relie une requête HTTP à une réponse, comme l’affichage d’une vue ou l’exécution d’une méthode.
Les verbes HTTP indiquent l’intention d’une requête, comme récupérer, créer, modifier ou supprimer des données. Leur bon usage permet de structurer clairement les échanges entre le client et le serveur.
Un paramètre de route permet de transmettre une valeur dynamique via l’URL, comme un identifiant. Il rend les routes flexibles et adaptées à des contenus variables.
Un paramètre optionnel est un élément de l’URL qui peut être présent ou absent sans bloquer l’accès à la route. Il permet de gérer plusieurs cas avec une seule définition de route.
Le nom de route sert d’identifiant lisible pour référencer une route dans l’application. Il facilite la maintenance et évite de dépendre directement des URL.
Un contrôleur regroupe la logique de traitement liée aux requêtes. Il permet de séparer clairement le routage de la logique métier.
Artisan est l’outil en ligne de commande de Laravel. Il aide le développeur à inspecter, générer et gérer efficacement les éléments de l’application.
Un groupe de routes permet d’appliquer des règles communes à plusieurs routes. Cela améliore la lisibilité et la cohérence du code.
La redirection consiste à envoyer automatiquement l’utilisateur d’une URL vers une autre. Elle est souvent utilisée pour gérer les changements de structure d’un site.
Un middleware agit comme un filtre entre la requête et la réponse. Il permet de contrôler l’accès, vérifier des conditions ou modifier les données échangées.
L’injection de dépendances permet de fournir automatiquement des objets nécessaires à une méthode. Elle rend le code plus propre, testable et maintenable.
Une route de ressources génère automatiquement un ensemble cohérent de routes pour gérer des opérations courantes. Elle simplifie la gestion des actions standards.
Le Route Model Binding associe automatiquement un paramètre de route à un modèle. Il évite les recherches manuelles et réduit les erreurs de code.
Le fallback routing définit une route exécutée lorsqu’aucune autre ne correspond à l’URL demandée. Il permet de gérer proprement les pages introuvables.
À propos de ce QCM
Le routage dans Laravel permet d’établir un lien clair entre une URL et le traitement qui lui est associé.
Chaque route joue le rôle d’un point de passage où la requête est analysée avant d’être transmise à la logique appropriée.
L’utilisation correcte des verbes HTTP est primordiale, car elle reflète l’action réelle effectuée sur les données, qu’il s’agisse de consultation, de création, de modification ou de suppression.
Les paramètres de route apportent une dimension dynamique, en permettant de travailler avec des identifiants ou des valeurs variables directement intégrées à l’URL.
Laravel encourage une organisation structurée grâce aux contrôleurs, qui centralisent la logique métier et allègent les fichiers de routes.
Les groupes de routes, les préfixes et les middlewares renforcent cette organisation en appliquant des règles communes, comme la sécurisation de l’accès ou la gestion de contextes spécifiques.
L’injection de dépendances, quant à elle, facilite la collaboration entre les différentes parties du code en automatisant la transmission des objets nécessaires.
Les routes de ressources et le Route Model Binding illustrent l’approche productive de Laravel, qui vise à réduire la répétition et à limiter les erreurs.
Enfin, des mécanismes comme le fallback routing ou les redirections contribuent à une meilleure expérience utilisateur en gérant correctement les cas inattendus.
Travailler ces notions à travers des QCM permet de renforcer la compréhension théorique, de s’entraîner de manière ciblée et d’évaluer ses acquis.
C’est un excellent moyen de se préparer efficacement à des examens ou à des situations professionnelles concrètes.
Conclusion
La maîtrise du routage dans Laravel représente une étape clé dans le parcours de tout développeur web.
Les concepts abordés offrent une vision claire de la manière dont une application gère les requêtes et structure sa logique interne.
En s’entraînant régulièrement à travers ces QCM, l’apprenant consolide ses bases, affine son raisonnement et gagne en assurance.
Cette progression se traduit par un code plus lisible, plus fiable et plus facile à maintenir.
En approfondissant ces notions, chacun développe des compétences essentielles pour concevoir des applications robustes et professionnelles, adaptées aux exigences du monde réel.