Dans le cours : PHP : L'architecture MVC

Comprendre le routeur

Dans cette vidéo, nous allons aborder le fonctionnement du routeur. Dans les vidéos précédentes, nous avons vu un petit peu comment fonctionnait le modèle MVC. Donc on avait effectivement vu que lorsque l'utilisateur tapait une requête dans le navigateur, la requête était envoyée à un contrôleur qui lui-même pouvait faire appel à un modèle pour récupérer des données et charger une vue, par exemple pour afficher la page. Alors on a omis une information. Qu'est-ce qui se passe vraiment quand l'utilisateur tape une requête dans le navigateur ? La requête est envoyée à un routeur, et le routeur va lui rediriger vers un contrôleur. Donc effectivement, ici, on avait oublié de parler de la notion de routeur. Dans tout ce processus, le routeur est un acteur important qui va permettre de pouvoir rediriger vers le bon contrôleur. Le routeur sera positionné juste avant l'appel du contrôleur, parce que c'est lui justement qui va permettre à la requête de rediriger vers le bon contrôleur. Alors, quel est le rôle du routeur ? Le rôle du routeur sera tout simplement de rediriger l'utilisateur vers le bon contrôleur à l'aide des paramètres qu'on va passer dans l'URL. En gros, on va appeler le contrôleur qui va nous afficher la bonne page avec les bonnes informations. Alors comment le routeur fait-il pour appeler un contrôleur ? Comment est-ce qu'on lui passe les informations ? C'est très simple. Pour passer les informations au routeur, on va pouvoir passer les informations directement via l'URL. Via l'URL, on aura la possibilité de passer comme ça des paramètres. Et chacun de ces paramètres aura une correspondance pour le routeur. Lui, il va comprendre ces paramètres et c'est grâce à ça qu'il pourra nous charger le bon contrôleur. Donc dans notre exemple, on va passer simplement ici deux paramètres, un paramètre1 et un paramètre2 qu'on va ajouter dans l'URL de la page ici du routeur pour qu'il puisse comprendre vers quel controller nous rediriger. Donc là, effectivement, au niveau du routeur, voici les paramètres qu'on va passer. Le premier paramètre, ce sera le nom du contrôleur vers lequel on souhaiterait être dirigé. Le second paramètre sera le nom de l'action du contrôleur. Ce qu'on appelle l'action du contrôleur, c'est le nom de la méthode du contrôleur qui sera appelée et qui va être exécutée. Et il est possible qu'il y ait un troisième paramètre optionnel, qui peut être par exemple un identifiant. Pour faire justement ce passage de paramètre, en PHP, on utilise la superglobale $GET. On va essayer de voir un exemple ici. Donc je vous ai préparé un petit schéma avec justement ici le navigateur, par exemple, l'utilisateur qui va par exemple taper une requête qui va être celle-ci. Par exemple, si on regarde ici la requête, on a une URL ici avec justement des paramètres qui sont passés. Donc après index.php? ici, on a passé le premier paramètre qui est products. Ça veut dire que si on regarde cette structure ici, on a le routeur, et le routeur a la possibilité de pouvoir rediriger vers trois contrôleurs : Le contrôleur des produits qui s'appelle products, le contrôleur des catégories qui s'appelle Category et le contrôleur des commandes qui s'appelle Orders. Et ici, le premier paramètre indique au routeur qui doit aller vers le contrôleur products, et que pour le contrôleur products, on va pouvoir choisir une des actions. Ce qu'on appelle les actions, ce sont les méthodes qui sont au niveau de ce contrôleur. Au niveau du contrôleur, on a une méthode qui s'appelle Add, une méthode qui s'appelle Show et une méthode qui s'appelle Update. Et donc ici, le deuxième paramètre permettra de préciser vers quelle méthode on va vouloir être redirigé, et quelle méthode on va vouloir charger. Et c'est comme ça que le routeur va fonctionner. Il va vraiment se baser sur ces paramètres-là pour savoir quel contrôleurer il va appeler, et quelle méthode du contrôleur il va charger. Donc là, on a fait un petit exemple. Si on prend un deuxième exemple ici, si au niveau de l'URL, on lui passe ces deux paramètres-là, Category comme premier paramètre et Show comme deuxième paramètre, ça veut dire qu'au niveau du routeur, l'URL qu'on lui aura transmise lui dit « va vers le contrôleur Category, c'est celui-ci, et ensuite tu vas implémenter la méthode Show. » Et la méthode Show, on va pouvoir y accéder de cette façon-là. On a donc un dernier exemple, par exemple pour une suppression. Donc au niveau du routeur, on va lui passer cette URL-là et lui, donc, il va rediriger vers quel contrôleur ? Vers le contrôleur des produits, et ensuite il va rediriger vers la méthode delete. Et on peut lui passer bien sûr un troisième argument qui pourrait être l'identifiant du produit à supprimer.

Table des matières