creerControleur($requete); $action = $this->creerAction($requete); $controleur->executerAction($action); } catch (Exception $e) { $this->gererErreur($e); } } private function creerControleur(Requete $requete) { $controleur = "Connexion"; // Contrôleur par défaut if ($requete->existeParametre('controleur')) { $controleur = $requete->getParametre('controleur'); $controleur = ucfirst(strtolower($controleur)); } $classeControleur = "Controleur" . $controleur; $fichierControleur = "Controleur/" . $classeControleur . ".php"; if (!file_exists($fichierControleur)) { $classeControleur = "ControleurRecconnexion"; $fichierControleur = "Controleur/ControleurRecconnexion.php"; } require($fichierControleur); $controleur = new $classeControleur(); $controleur->setRequete($requete); return $controleur; } private function creerAction(Requete $requete) { $action = "index"; // Action par défaut if (!$requete->existeParametre('controleur')) { $action = "deconnecter"; } else if ($requete->existeParametre('action')) { $action = $requete->getParametre('action'); } return $action; } private function gererErreur(Exception $exception) { $vue = new Vue('erreur'); $vue->generer(array('msgErreur' => $exception->getMessage())); } }