S2 - Système de Routage

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Système de routage sous laravel

• Laravel fournit un système de routes simple. Déclarer une route permet de lier une URI
(identifiant de ressource uniforme, autrement dit la partie de l’adresse qui suit le nom de
domaine) à un code à exécuter.
• Le routage est un moyen de créer une URL de requête pour votre application. Ainsi, vous
êtes libre de définir vos routes comme vous le souhaitez.
• Le routage est l’un des composants clés du framework Laravel, c’est simplement un
mécanisme qui effectue le mappage de vos requêtes vers une action de contrôleur spécifique.
• Toutes les routes Laravel sont définies dans le fichier situé sous forme de fichier
/routes/web.php , qui est automatiquement chargé par le framework

Par défaut, Laravel s’installe avec un dossier de routes, pour gérer divers besoins des itinéraires,
dans son répertoire racine. Pour créer une route, il faut ainsi appeler la classe Route avec la
méthode HTTP souhaitée (get par exemple). Indiquez à cette méthode l’URI concernée et le
retour à afficher pour le visiteur comme dans l’exemple ci-dessous.

Route::get('test', function () {
echo ’Bienvenue sur le site !’;
});

1- Routage de base
Une route Laravel très basique est simplement exprimé comme suit:
Route::get('/', function () { • Route : on utilise le routeur, appel
return 'Welcome';
}); statique à la classe qui gère le système de
route ;
• get : on regarde si la requête a la
méthode “get” ;
• ‘/‘ : on regarde si l’URL comporte
uniquement le nom de domaine ;
• ‘return‘: retourne une vue (view) à
partir du fichier “welcome“.

• Ici, “Route” est une classe qui a une méthode statique “get” qui renvoie une méthode
“view” qui présente une page Web.
• Lorsqu’un utilisateur visite la page d’accueil, il est redirigé vers la page “Welcome” page.
Cet “welcome” est en fait un fichier PHP: “welcome.blade.php“.
• Il a été stocké par défaut dans le dossier “views” pendant l’installation de Laravel.
Il est possible et même nécessaire d’ajouter d’autres routes pour diriger les demandes vers la bonne
méthode d’un contrôleur ou encore, comme c’est le cas dans le code précédent, vers la bonne vue.
Imaginons que nous ayons trois pages qui doivent être affichées avec ces URL :

Cours proposé par : ELGARRAI Zineb


1. http://127.0.0.1:8000/p1
1. http://127.0.0.1:8000/p2
1. http://127.0.0.1:8000/p3
Route::get('p1', function() { echo 'Je suis la page 1 !'; });
Route::get('p2', function() { echo 'Je suis la page 2 !'; });
Route::get('p3', function() { echo 'Je suis la page 3 !'; });

Il existe quelques autres options pour les méthodes permettant d’appeler une définition d’itinéraire,
comme illustré ci-dessous:
Route::get('/', function () {...});
Route::post('/', function () {});
Route::put('/', function () {});
Route::delete('/', function () {});
Route::any('/', function () {});
Route::match(['get', 'post'], '/', function () {});

• GET: Ceci est principalement utilisé pour récupérer les données du serveur, sans modifier
les données et les renvoyer à l’utilisateur.
• POST: Cela nous permet de créer de nouvelles ressources ou données sur le serveur, bien
que cela puisse être utilisé uniquement pour envoyer des données, pour un traitement
ultérieur (cela pourrait être la validation des données, comme dans le processus de
connexion). Il est considéré comme plus sûr que GET pour l’envoi de données sensibles.
• PUT: Put fonctionne comme le POST dans le sens où il vous permet d’envoyer des données
au serveur, généralement pour mettre à jour une ressource existante au lieu de la créer. Vous
le mettez essentiellement.

2- Routes nommées
Il est parfois utile de nommer une route, par exemple pour générer une URL ou pour effectuer une
redirection. L’avantage d’utiliser une route nommée est que si nous changeons l’URL d’une route
à l’avenir, nous n’aurons pas besoin de changer l’URL ou les redirections pointant vers cette route
si nous utilisons une route nommée.
Laravel fournit un moyen simple de nommer vos routes ; vous pouvez déterminer le nom de
l’itinéraire à l’aide de la méthode name :
Route::get('p1', function() { echo 'Je suis la page 1 !'; })→name(‘r1’) ;

3- Générer une URL à l’aide d’une route nommée


• Pour générer une URL en utilisant le nom de la route
$url = route('r1'); ou <a href="{{ route('home') }}">
• Si vous utilisez le nom de la route pour la redirection
• $redirect = Redirect::route('r1');

Cours proposé par : ELGARRAI Zineb


4- Les paramètres des routes
On peut utiliser un paramètre pour une route qui accepte des éléments variables en utilisant des
accolades. Exemple :
Route::get('{n}', function($n) {
echo 'Je suis la page ' . $n . ' !';
});

Les paramètres des routes sont toujours entre crochets {} et doivent être composés de caractères
alphabétiques. Ne peut pas contenir les caractères “-” , peut utiliser le caractère “_” Substitution de
caractères “-” .
➔ Paramètres obligatoires
Par exemple, si vous souhaitez capturer l’ID utilisateur dans l’URL lorsque vous souhaitez obtenir
les détails de l’utilisateur, vous pouvez vous référer aux pratiques suivantes:
Route::get('user/{id}', function ($id) {
return 'User '.$id;
});

Remarque :
Plusieurs paramètres de routage peuvent également être capturés, par exemple:
Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) {
//
});

➔ Paramètres facultatifs
Parfois, vous devez spécifier des paramètres de routage, mais les paramètres ne sont pas
obligatoires : utilisez à ce moment. “?” Le caractère est marqué après le nom du paramètre pour
garantir que la valeur par défaut est donnée à la variable correspondante de l’itinéraire.
Route::get('user/{name?}', function ($name = null) {
return $name;
});
Route::get('user/{name?}', function ($name = 'Tom') {
return $name;

5- Routage avec des méthodes de contrôleur


Vous pouvez créer une route avec une méthode de contrôleur d’appel, vous pouvez donc
simplement créer une méthode de contrôleur et appeler cette méthode avec votre route comme ci-
dessous:
Route::get('/home', 'HomeController@home');

Exercices
Exercice 1 : Créer la liste des routes pour répondre aux URL suivants :
• http://localhost/laravel/public/
• http://localhost/laravel/public/login

Cours proposé par : ELGARRAI Zineb


• http://localhost/laravel/public/page/1
Exercice 2 :
• Créer un nouveau projet Laravel
• Ajouter une route /test
• Ajouter un paramètre qui sera affiché : /test/param
• Utiliser une vue pour cette route
• Lister les routes avec la commande artisan

Cours proposé par : ELGARRAI Zineb

Vous aimerez peut-être aussi