Skip to content
Extraits de code Groupes Projets
Valider 187fa960 rédigé par vbochet's avatar vbochet
Parcourir les fichiers

Création d'un fichier Router.php dans le répertoire app/kernel/, qui servira à...

Création d'un fichier Router.php dans le répertoire app/kernel/, qui servira à analyser les requêtes et déterminer quoi faire (pour MVC)
parent c4440610
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!1Merge de dev-nestor sur dev
<?php
class Router { // classe PHP permettant l'analyse de l'URL des requêtes
public static function analyze($query) { // méthode d'analyse de la requête
// on définit une variable, par défaut initialisée sur les paramètres de page d'erreur 404 (page non trouvée)
$result = array(
"controller" => "Error", // le nom du contrôleur à instancier
"action" => "error404", // le nom de l'action à effectuer, autrement dit de la méthode à appeler dans ce contrôleur
"params" => array() // les paramètres de la requête (dans un tableau), par défaut aucun
);
if($query === "" || $query === "/") { // on regarde si la requête est identique (===) à la chaîne vide ou "/", et si oui, c'est qu'on voulait accéder à la page d'accueil
$result["controller"] = "Index"; // le contrôleur est donc Index
$result["action"] = "display"; // on va afficher la page, l'action est donc display
// il n'y a pas de paramètres, donc pas d'affectation de "params"
}
else { // sinon, on a des infos sur la page demandée
$parts = explode("/", $query); // on sépare la requête selon les /, et on regarde ce qu'on connait comme ordres dedans
if($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (je sais pas si y'a ça de prévu, mais ça servira d'exemple)
$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
$result["action"] = "display"; // on veut afficher les informations d'un jeu, donc on donne l'action "display"
$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le nom/id du jeu), on le stocke aussi
}
else if($parts[0] == "profil" && count($parts) == 2) { // autre possibilité : on veut consulter un profil (le premier bout de la requête est "profil", et on a au moins un paramètre derrière)
$result["controller"] = "Profil"; // le contrôleur à instancier sera "ProfilController", on met donc "Profil" dans la variable de résultat
$result["action"] = "display"; // on veut afficher le profil de quelqu'un, donc on donne l'action "display"
$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le pseudo de la personne), on le stocke aussi
}
// à chaque fois qu'on crée une nouvelle page, il faut rajouter un cas à cet endroit !
// si on n'a rien trouvé que l'on connaissait, alors la page demandée n'existe pas => erreur 404. Ça tombe bien, c'est comme ça qu'on a initialisé la variable ! :-D
}
return $result; // on renvoie le tableau avec les informations nécessaires pour savoir quoi faire
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter