Routing
Routage
Définition et rôle d'un routeur
Un routeur est un composant clé dans le développement web qui sert d'intermédiaire entre les requêtes des utilisateurs et les réponses du serveur. Il interprète l'URL demandée et déclenche l'action appropriée, souvent en dirigeant la requête vers une méthode de contrôleur.
Mécanisme de routage
Le routeur examine l'URL fournie par l'utilisateur et la compare avec sa table de routage pour identifier l'action à exécuter, qui peut être la méthode d'un contrôleur ou une fonction anonyme.

Introduction au routage dans Laravel
Laravel, un framework PHP réputé, simplifie la création d'applications web en offrant des outils et une structure prédéfinis. Le routage est un aspect crucial de Laravel et est géré à travers des fichiers spécifiques situés dans le répertoire routes, notamment web.php pour les routes web.
Configuration des routes avec Laravel
Dans Laravel, les routes sont définies en utilisant des méthodes qui correspondent aux différentes méthodes HTTP. Voici une illustration de la syntaxe :
Route::get($uri, $callback);
Route::post($uri, $callback);
// et d'autres méthodes HTTP...
Les verbes HTTP et leur utilisation dans le routage
Explication des verbes HTTP
Les verbes HTTP sont des méthodes de requête qui indiquent l'action souhaitée pour une ressource donnée. Ils jouent un rôle crucial dans le routage, définissant la nature de la requête et l'opération à effectuer.
Les verbes HTTP courants
Voici les verbes HTTP les plus utilisés dans le routage avec Laravel :
- GET : Utilisé pour récupérer des ressources. Dans le contexte du routage, une route GET est souvent utilisée pour afficher une page ou des données.
- POST : Employé pour créer de nouvelles ressources. Une route POST est généralement associée à la soumission de formulaires.
- PUT/PATCH : Utilisé pour mettre à jour des ressources existantes. PUT est souvent employé pour les mises à jour complètes, tandis que PATCH est pour les mises à jour partielles.
- DELETE : Comme son nom l'indique, ce verbe sert à supprimer des ressources.
Tableau comparatif des verbes HTTP
| Verbe HTTP | Usage | Action CRUD correspondante |
|---|---|---|
| GET | Récupérer une ou plusieurs ressources | Read (Lire) |
| POST | Créer une nouvelle ressource | Create (Créer) |
| PUT/PATCH | Mettre à jour une ressource existante | Update (Mettre à jour) |
| DELETE | Supprimer une ressource | Delete (Supprimer) |
Ces verbes sont directement utilisés dans la définition des routes Laravel pour indiquer comment les requêtes à différentes URLs doivent être traitées.
Association des routes aux contrôleurs
Pour associer une route à un contrôleur, Laravel permet d'utiliser la notation [Controller::class, 'method'] :
Route::get('/articles', [ArticleController::class, 'index']);
Paramétrage des routes
Il est possible d'intégrer des paramètres aux routes pour passer des données aux méthodes de contrôleur :
Route::get('/articles/{id}', [ArticleController::class, 'show']);
Nomination des routes
Attribuer un nom aux routes facilite leur référence ultérieure dans l'application :
Route::get('/contact', [ContactController::class, 'show'])->name('contact.show');
Exemples concrets
Exemple de déclaration de routes
Voici comment les routes sont déclarées dans le fichier web.php en utilisant la notation préférée :
// Accueil
Route::get('/', function () {
return view('welcome');
});
// Contact
Route::get('/contact', [ContactController::class, 'show']);
// Article spécifique
Route::get('/articles/{id}', [ArticleController::class, 'show']);
Correspondances URL/Route
Le tableau suivant illustre des exemples d'URLs et les routes associées avec le gestionnaire correspondant :
| URL | Route | Gestionnaire |
|---|---|---|
/ |
Route::get('/') |
Closure (retourne view 'welcome') |
/contact |
Route::get('/contact') |
ContactController@show |
/articles/42 |
Route::get('/articles/{id}') |
ArticleController@show |
Routes de type ressource
Présentation des routes ressource
Laravel propose un moyen rapide de créer plusieurs routes pour gérer des ressources complètes avec une seule ligne de code. Ces routes ressource prennent en charge les opérations CRUD (Create, Read, Update, Delete) pour une ressource donnée.
Déclaration d'une route ressource
Pour déclarer une route ressource, on utilise la méthode resource :
Route::resource('articles', ArticleController::class);
Tableau de correspondance des routes ressource
Ce tableau montre la correspondance entre les actions CRUD et les routes générées automatiquement par Laravel :
| Action | URL | Route | Gestionnaire | HTTP Method |
|---|---|---|---|---|
| Index | /articles |
Route::resource('articles') |
ArticleController@index |
GET |
| Create | /articles/create |
Route::resource('articles') |
ArticleController@create |
GET |
| Store | /articles |
Route::resource('articles') |
ArticleController@store |
POST |
| Show | /articles/{article} |
Route::resource('articles') |
ArticleController@show |
GET |
| Edit | /articles/{article}/edit |
Route::resource('articles') |
ArticleController@edit |
GET |
| Update | /articles/{article} |
Route::resource('articles') |
ArticleController@update |
PUT/PATCH |
| Destroy | /articles/{article} |
Route::resource('articles') |
ArticleController@destroy |
DELETE |
Exercices pratiques sur le routage
Voici quelques exercices pratiques simples pour que tu puisses maîtriser les bases du routage Laravel. Pas de contrôleur, pas de base de données, juste toi, routes/web.php, et ton talent (ou son absence). 😏
Exercice 1 : Route simple (GET)
Crée une route /hello qui affiche dans le navigateur :
« Hello World ! Ceci est ma première route Laravel. »
Exercice 2 : Route avec paramètre
Crée une route /user/{name} qui affiche :
« Bienvenue sur ton profil, [name] ! » en remplaçant [name] par la valeur fournie dans l’URL.
Exemple : /user/Alice affiche « Bienvenue sur ton profil, Alice ! »
Exercice 3 : Route avec deux paramètres
Crée une route /calcul/{nombre1}/{nombre2} qui affiche la somme des deux nombres passés en paramètre.
Exemple : /calcul/4/6 affiche « Le résultat est : 10 ».
Exercice 4 : Route optionnelle
Crée une route /bienvenue/{langue?} :
- Si aucune langue n’est spécifiée : affiche « Bienvenue ! »
- Si la langue est "en" : affiche « Welcome! »
- Si la langue est "es" : affiche « ¡Bienvenido! »
- Pour toute autre langue : affiche « Langue non supportée. »
Exercice 5 : Méthode POST fictive
Crée une route /formulaire en POST qui renvoie simplement la phrase suivante :
« Formulaire envoyé avec succès ! ».
(Tu ne pourras pas encore la tester directement via le navigateur, mais prépare déjà le terrain pour la suite !)
Exercice 6 : Route de redirection
Crée une route /ici qui redirige automatiquement vers /hello (la première route créée).
Si tu survis à ces exercices, on pourra éventuellement envisager des choses sérieuses. Bonne chance !
