Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 4ea10cfdafcb060997621a478a1868296448506c
  • master par défaut protégée
  • dev
  • dev-admin
  • migration-pg
  • dev-partie
  • dev-deplacement-msg-erreurs
  • dev-jeux-favoris
  • dev-update-forms
  • dev-header-profil-deconnexion
  • dev-contact
  • dev_page_accueil
  • dev-edit-profil
  • dev-classement
  • dev_espace_membre
  • dev-images
  • javascript_valid_form
  • application_design_views
  • dev-table
  • dev-nestor
20 résultats

Router.php

  • Router.php 11,16 Kio
    <?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
    			
    			/*** consultation des jeux ***/
    			if($parts[0] == "jeu" && count($parts) == 2) { // on veut consulter la fiche d'un jeu (jeu/nomDuJeu)
    				$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] == "jeu" && count($parts) == 1 && isset($_POST['rechercheJeu'])) { // on veut consulter la fiche d'un jeu via la barre de recherche du header
    				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
    				$result["action"] = "redirect"; // on veut rediriger vers la page d'un jeu, donc on donne l'action "redirect"
    				$result["params"]["slug"] = $_POST['rechercheJeu']; //on a un paramètre (le nom du jeu), on le stocke aussi
    			}
    			else if($parts[0] == "listejeux") { // on veut consulter la liste des jeux (listejeux/, avec n'importe quoi derrière)
    				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
    				$result["action"] = "displayListe"; // on veut afficher la liste des jeux, donc on donne l'action "displayListe"
    				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
    			}
    			else if($parts[0] == "jeux") { // on veut récupérer la liste des jeux au format JSON
    				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
    				$result["action"] = "listeJson"; // on veut générer une sortie au format json, on donne donc l'action "listeJson"
    				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
    			}
    			else if($parts[0] == "addjeu" && count($parts) == 1) { // on veut afficher le formulaire d'ajout(url/addjeu)
    				$result["controller"] = "Jeu";
    				$result["action"] = "displayFormAdd"; // on veut afficher le formulaire
    				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
    			}
    			else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "addrequest") { // on veut enregistrer la demande d'ajout (addjeu/addrequest)
    				$result["controller"] = "Jeu"; // le contrôleur à instancier sera "JeuController", on met donc "Jeu" dans la variable de résultat
    				$result["action"] = "addRequest"; // on veut ajouter le jeu à la BDD, donc on donne l'action "addRequest"
    				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
    			}
    			else if($parts[0] == "addjeu" && count($parts) == 2 && $parts[1] == "requestvalid") { // l'enregistrement de la demande a été effectué, on affiche un message de confirmation (addjeu/requestvalid)
    				$result["controller"] = "Jeu";
    				$result["action"] = "displayRequestValid";
    				// il n'y a pas de paramètres attendus, on n'affecte pas $result["params"]
    			}
    			else if($parts[0] == "add_favoris" && count($parts) == 2) { // pour ajouter un jeu à ses favoris (add_favoris/nomdujeu)
    				$result["controller"] = "Jeu";
    				$result["action"] = "displayFavorisValid";
    				$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL (normalement le slug du jeu), on le stocke aussi
    			}
    			
    			/*** consultation des profils ***/
    			else if($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne)
    				$result["controller"] = "Profil"; 
    				$result["action"] = "display"; 
    				$result["params"]["slug"] = $parts[1]; 
    			}
    			else if($parts[0] == "profil" && count($parts) == 3 && $parts[2] == "edit") {
    				$result["controller"] = "Profil";
    				$result["action"] = "displayEdit";
    				$result["params"]["slug"] = $parts[1];
    			}
    			else if($parts[0] == "profil" && count($parts) == 4 && $parts[2] == "edit" && $parts[3] == "verify") {
    				$result["controller"] = "Profil";
    				$result["action"] = "verifyEdit";
    				$result["params"]["slug"] = $parts[1];
    			}
    			else if($parts[0] == "profil" && count($parts) == 4 && $parts[2] == "edit" && $parts[3] == "valid") {
    				$result["controller"] = "Profil";
    				$result["action"] = "displayValid";
    				$result["params"]["slug"] = $parts[1];
    			}
    
    			/*** consultation des classements ***/
    			else if($parts[0] == "classement" && count($parts) > 1) { // si classement général : 2 morceaux(classement/global), si classement spécifique : 3 morceaux (classement/jeu/nomDuJeu)
    				$result["controller"] = "Classement";
    				$result["action"] = "display";
    				$result["params"]["slug"] = $parts[1]; //on a des paramètres dans l'URL, on le stocke aussi
    				for($k=2; $k<count($parts); $k++) { // on recompose le bout d'URL encore inutilisé
    					$result["params"]["slug"] = $result["params"]["slug"].'/'.$parts[$k];
    				}
    			}
    			
    			/*** connexion au site ***/
    			else if($parts[0] == "connexion" && count($parts) == 1) { // formulaire de connexion
    				$result["controller"] = "Connexion"; 
    				$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
    			}
    			else if($parts[0] == "deconnexion" && count($parts) == 1) { // page de déconnexion
    				$result["controller"] = "Connexion"; 
    				$result["action"] = "displayDisconnect"; // "displayDisconnect" pour afficher la page de déconnexion réussie
    			}
    			else if($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
    				$result["controller"] = "Connexion"; 
    				$result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
    			}
    			else if($parts[0] == "connexion" && count($parts) == 2 && $parts[1] == "verify") { // connexion réussie
    				$result["controller"] = "Connexion"; 
    				$result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
    			}
    			
    			/*** inscription au site ***/
    			else if($parts[0] == "inscription" && count($parts) == 1) { // formulaire de connexion
    				$result["controller"] = "Register"; 
    				$result["action"] = "displayForm"; // "displayForm" pour afficher le formulaire
    			}
    			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "valid") { // connexion réussie
    				$result["controller"] = "Register"; 
    				$result["action"] = "displayValid"; // "displayValid" pour afficher la page avec le message de réussite
    			}
    			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "verify") { // vérification de la validité des champs
    				$result["controller"] = "Register"; 
    				$result["action"] = "verify"; // "verify" pour appeler la méthode de vérification
    			}
    			else if($parts[0] == "inscription" && count($parts) == 2 && $parts[1] == "save") { // réalisation de l'inscription dans la BDD
    				$result["controller"] = "Register"; 
    				$result["action"] = "save"; // "save" pour appeler la méthode d'enregistrement dans la BDD
    			}
    
                /*** Ajout de partie ***/
                else if ($parts[0] == "add_partie" && count($parts) == 1) {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayStep0";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "valid") {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayValid";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step1") {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayStep1";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "step2") {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayStep2";
                }
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe1") {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayStepe1";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "stepe2") {
                    $result["controller"] = "Partie";
                    $result["action"] = "displayStepe2";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep0") {
                    $result["controller"] = "Partie";
                    $result["action"] = "verifyStep0";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep1") {
                    $result["controller"] = "Partie";
                    $result["action"] = "verifyStep1";
                } 
    			else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "verifystep2") {
                    $result["controller"] = "Partie";
                    $result["action"] = "verifyStep2";
                }
                else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addjoueurs1") {
                    $result["controller"] = "Partie";
                    $result["action"] = "addjoueurs1";
                }
                else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "deljoueurs1") {
                    $result["controller"] = "Partie";
                    $result["action"] = "deljoueurs1";
                }
                else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "addequipe") {
                    $result["controller"] = "Partie";
                    $result["action"] = "addequipe";
                }
                else if ($parts[0] == "add_partie" && count($parts) == 2 && $parts[1] == "delequipe") {
                    $result["controller"] = "Partie";
                    $result["action"] = "delequipe";
                }
    
    
                // à 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
        }
    }