You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.6 KiB
51 lines
1.6 KiB
<?php
|
|
|
|
namespace controleur;
|
|
|
|
use model\AdminModel;
|
|
use vendor\AltoRouter;
|
|
use controleur\UserControleur;
|
|
use controleur\AdminControleur;
|
|
require 'AltoRouter.php';
|
|
|
|
class FrontControleur
|
|
{
|
|
public function __construct(){
|
|
|
|
global $twig;
|
|
|
|
$router = new AltoRouter();
|
|
$router->setBasePath('~/mapoint2/Tp/routeur/Srouteur');
|
|
$router->map('GET', '/', 'UserControler.php');
|
|
$router->map('GET|POST','/user/[a:action]?','UserControler.php');
|
|
$router->map('GET|POST','/admin/[a:action]?','AdminControler.php');
|
|
|
|
$match = $router->match();
|
|
|
|
if (!$match) {
|
|
$dVueEreur[] = "Page doesn't exist";
|
|
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
|
|
}
|
|
else {
|
|
$controller=$match['target'] ?? null;
|
|
$action=$match['params']['action'] ?? null;
|
|
try {
|
|
$controller = '\\controleur\\' . $controller;
|
|
$controller = new $controller;
|
|
if($controller == "\\Controler\\AdminControler.php"){
|
|
if (!AdminModel::isAdmin()){
|
|
echo $twig->render('Connection.html');
|
|
}
|
|
}
|
|
if (is_callable(array($controller, $action))) {
|
|
call_user_func_array(array($controller, $action),
|
|
array($match['params']));
|
|
}
|
|
}
|
|
catch (Error $error){
|
|
$dVueEreur[] = "Controller doesn't exist";
|
|
echo $twig->render('erreur.html', ['dVueEreur' => $dVueEreur]);
|
|
}
|
|
}
|
|
}
|
|
} |