initBaseURI(); $this->initControllerAndParametersFromURI(); $this->initData(); } // intialise baseURI // e.g. http://eden.imt-lille-douai.fr/~luc.fabresse/api.php => __BASE_URI = /~luc.fabresse // e.g. http://localhost/CDAW/api.php => __BASE_URI = /CDAW protected function initBaseURI() { $this->baseURI = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY); } // intialise controllerName et uriParameters // controllerName contient chaîne 'default' ou le nom du controleur s'il est présent dans l'URI (la requête) // uriParameters contient un tableau vide ou un tableau contenant les paramètres passés dans l'URI (la requête) // e.g. http://eden.imt-lille-douai.fr/~luc.fabresse/api.php // => controllerName == 'default' // uriParameters == [] // e.g. http://eden.imt-lille-douai.fr/~luc.fabresse/api.php/user/1 // => controllerName == 'user' // uriParameters == [ 1 ] protected function initControllerAndParametersFromURI(){ $prefix = $_SERVER['SCRIPT_NAME']; $uriParameters = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $i=0; while($icontrollerName = array_shift($uriSegments) ?: "default"; $this->uriParameters = $uriSegments; } // ============== // Public API // ============== // retourne le name du controleur qui doit traiter la requête courante public function getControllerName() { return $this->controllerName; } public function getUriParams() { return $this->uriParameters; } public function initData() { if ($this->getHttpMethod() === 'PUT' || $this->getHttpMethod() === 'POST'){ $jsondata=file_get_contents("php://input"); $this->data = json_decode($jsondata, true); } } // retourne la méthode HTTP utilisée dans la requête courante public function getHttpMethod() { return $_SERVER["REQUEST_METHOD"]; } public function getData() { return $this->data; } // returns JWT token in Authorization header or throw an exception public function getJwtToken() { $headers = getallheaders(); $autorization = $headers['Authorization']; $arr = explode(" ", $autorization); if(count($arr)<2) throw new Exception("Missing JWT token"); $jwt_token = $arr[1]; return $jwt_token; } }