From 402f7c7f06ccfe07a58a3afbdf44144800e1b3c6 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Fri, 12 May 2017 23:50:41 +0200 Subject: [PATCH] Remove HttpRequest from constructor but only for remote(), so not an argument anymore --- build/api/core/Request.php | 39 +++++++++++++++++++------------------- public_html/index.php | 2 +- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/build/api/core/Request.php b/build/api/core/Request.php index 1656694..17e0e05 100644 --- a/build/api/core/Request.php +++ b/build/api/core/Request.php @@ -44,14 +44,8 @@ * */ public function __construct($path=null, $params=null){ - /* [1] Fetch HttpRequest correct data - =========================================================*/ - /* (1) Parse HttpRequest data because php doesn't parse it for non-POST HTTP method */ - $httprequest = new HttpRequest(); - $_POST = $httprequest->POST(); - - /* [2] Initialisation + /* [1] Initialisation =========================================================*/ /* (1) Erreur par défaut */ $this->error = new Error(Err::Success); @@ -63,7 +57,7 @@ } - /* [3] On met a jour la configuration + /* [2] On met a jour la configuration =========================================================*/ /* (1) Section Title */ $this->modules = json_decode( file_get_contents(self::config_path()), true ); @@ -76,7 +70,7 @@ - /* [4] Verification des types des parametres + /* [3] Verification des types des parametres =========================================================*/ /* (1) Section Title */ if( !is_string($path) ){ // Si le type est incorrect @@ -91,30 +85,30 @@ $this->http_method = strtoupper($_SERVER['REQUEST_METHOD']); - /* [5] Verification du chemin (existence module+methode) + /* [4] Verification du chemin (existence module+methode) =========================================================*/ if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution return false; - /* [6] Verification des droits + /* [5] Verification des droits =========================================================*/ if( !$this->checkPermission() ) // Si on a pas les droits return false; - /* [7] Verification des parametres (si @type est defini) + /* [6] Verification des parametres (si @type est defini) =========================================================*/ if( !$this->checkParams($params) ) // Verification de tous les types return false; - /* [8] Récupèration des options + /* [7] Récupèration des options =========================================================*/ $this->buildOptions(); - /* [9] Construction de l'objet (add http method to params) + /* [8] Construction de l'objet (add http method to params) =========================================================*/ $this->params = $params; $this->params['HTTP_METHOD'] = $this->http_method; @@ -137,7 +131,7 @@ /* (1) Check instance type */ if( !($instance instanceof AuthSystem) ) return false; - + /* (2) Store instance */ self::$authsystem = $instance; } @@ -318,7 +312,6 @@ /* DESERIALISATION A PARTIR DE L'URL ET DES DONNEES POST (OPT) * * @url Contenu de l'url formatté (commence à "/module/methode") - * @post [opt] Tableau des donnes * * @return instance Retourne un objet de type * @@ -329,11 +322,17 @@ * les données peuvent être dans les données $_POST * */ - public static function remote($url, $data=null){ - is_null($data) && ($data = []); + public static function remote($url){ + /* [1] Fetch HttpRequest correct data + =========================================================*/ + /* (1) Parse HttpRequest data because php doesn't parse it for non-POST HTTP method */ + $httprequest = new HttpRequest(); + $_POST = $httprequest->POST(); - /* [1] On verifie que le @path est renseigne + $data = $_POST; + + /* [2] On verifie que le @path est renseigne =========================================================*/ /* (1) Si le path est dans @url */ $pathInUrl = is_string($url) && preg_match('#^/?([\w_-]+/[\w_-]+)(?:/?|/((?:\w+/)*(?:\w+/?)))$#', $url, $urlMatches); @@ -473,7 +472,7 @@ $classname = '\\api\\core\\AuthSystemDefault'; self::$authsystem = new $classname(); } - + // Check permission using user-implemented AuthSystem $granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] ); diff --git a/public_html/index.php b/public_html/index.php index e3aa103..7063ace 100755 --- a/public_html/index.php +++ b/public_html/index.php @@ -133,7 +133,7 @@ /* (4) api/module/method -> Api */ $R->post('api(?:(/.*))/?', function($url){ - $request = Request::remote($url[0], $_POST); + $request = Request::remote($url[0]); $answer = $request->dispatch(); // Si c'est une réponse (et non un download)