radiantassure/Framework/Routeur.php
2025-12-27 08:27:41 +00:00

57 lines
1.8 KiB
PHP
Executable File

<?php
require_once 'Controleur.php';
require_once 'Requete.php';
require_once 'Vue.php';
class Routeur
{
public function routerRequete()
{
try {
$requete = new Requete(array_merge($_GET, $_POST));
$controleur = $this->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()));
}
}