/** * Execute la commande d'affichage des routes de l'application * @return string */ public function executeCommand() { // récupération des routes de l'application require_once ROOT_DIR . '/app/routes.php'; $cadrecell = '+' . str_repeat("-", $this->lencell) . '+' . str_repeat("-", $this->lencellmethod) . '+' . str_repeat("-", $this->lencellalias) . '+' . str_repeat("-", $this->lencell) . '+' . "\n"; echo $cadrecell; echo '| URL ' . str_repeat(" ", $this->lencell - 5) . '| METHOD ' . str_repeat(" ", $this->lencellmethod - 8) . '| ALIAS ' . str_repeat(" ", $this->lencellalias - 7) . '| CALL ' . str_repeat(" ", $this->lencell - 6) . '|' . "\n"; echo $cadrecell; foreach (\Routes::getRoutes() as $method => $routes) { foreach ($routes as $route) { echo '| ' . $route->getPath() . str_repeat(' ', $this->lencell - strlen($route->getPath()) - 1); echo '| ' . $method . str_repeat(' ', $this->lencellmethod - strlen($method) - 1); echo '| ' . $route->getAlias() . str_repeat(' ', $this->lencellalias - strlen($route->getAlias()) - 1); echo '| ' . $route->getCallable() . str_repeat(' ', $this->lencell - strlen($route->getCallable()) - 1) . '|' . "\n"; } } echo $cadrecell; exit; }
switch ($_SERVER['REQUEST_METHOD']) { case 'POST': $request = 'post:' . $request; break; case 'PUT': $request = 'put:' . $request; parse_str(file_get_contents('php://input'), $_REQUEST); break; case 'DELETE': $request = 'delete:' . $request; break; default: $request = 'get:' . $request; break; } try { require '../../routes.php'; $routes = Routes::getRoutes(); foreach ($routes as $route) { if (preg_match('/^' . $route[0] . '$/', $request, $matches)) { $result = call_user_func($route[1], $matches); break; } } header('Content-Type: application/json'); echo json_encode($result); } catch (Exception $e) { header('HTTP/1.1 403 Forbidden'); header('Content-Type: application/json'); echo json_encode(['message' => $e->getMessage()]); }
<?php //make use of absolute path when service launth. require_once "routes.php"; require_once "DjentController.php"; $url = str_replace("http://got-djent.com/", "", $_GET["url"]); $routes = Routes::getRoutes(str_replace("http://got-djent.com/", "", $_GET["url"])); $routes["controller"]::$routes["action"]($routes["id"]);
/** * Fonction de test ( development ) * @return [type] [description] */ function getRoutes() { require __DIR__ . '/tests/routes.php'; $test = Routes::getRoutes(); var_dump($test); }
function loadRoutes() { return Routes::getRoutes(); }