Aller au contenu
Framework côté serveur

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 !