2020-05-15 12:27:34 +02:00

59 lines
1.6 KiB
PHP

<?php
require_once $GLOBALS['app_path'].'Framework/Request.php';
require_once $GLOBALS['app_path'].'Framework/View.php';
class Router {
public function routingRequest() {
try {
$request = new Request(array_merge($_GET, $_POST));
$controller = $this->createController($request);
$action = $this->createAction($request);
$controller->executeAction($action);
}
catch (Exception $e) {
$this->error($e);
}
}
private function createController($request) {
$controller = "Default";
if ($request->existParameter('controller')) {
$controller = $request->getParameter('controller');
$controller = ucfirst(strtolower($controller));
}
$classController = "Controller" . $controller;
$fileController = $GLOBALS['app_path']."Controller/" . $classController . ".php";
if (file_exists($fileController)) {
require($fileController);
$controller = new $classController();
$controller->setRequest($request);
return $controller;
}
else
{
throw new Exception("Fichier '$fileController' introuvable");
return null;
}
}
private function createAction(Request $request) {
$action = "index";
if ($request->existParameter('action')) {
$action = $request->getParameter('action');
}
return $action;
}
private function error($exception) {
$view = new View('error');
$view->generate(array('msgError' => $exception->getMessage()));
}
}