Remove HttpRequest from constructor but only for remote(), so not an argument anymore

This commit is contained in:
xdrm-brackets 2017-05-12 23:50:41 +02:00
parent 4469fc68bb
commit fb2cea231a
2 changed files with 20 additions and 21 deletions

View File

@ -44,14 +44,8 @@
* *
*/ */
public function __construct($path=null, $params=null){ 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();
/* [1] Initialisation
/* [2] Initialisation
=========================================================*/ =========================================================*/
/* (1) Erreur par défaut */ /* (1) Erreur par défaut */
$this->error = new Error(Err::Success); $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 */ /* (1) Section Title */
$this->modules = json_decode( file_get_contents(self::config_path()), true ); $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 */ /* (1) Section Title */
if( !is_string($path) ){ // Si le type est incorrect if( !is_string($path) ){ // Si le type est incorrect
@ -91,30 +85,30 @@
$this->http_method = strtoupper($_SERVER['REQUEST_METHOD']); $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 if( !$this->checkPath($path) ) // Verification de la coherence du chemin + attribution
return false; return false;
/* [6] Verification des droits /* [5] Verification des droits
=========================================================*/ =========================================================*/
if( !$this->checkPermission() ) // Si on a pas les droits if( !$this->checkPermission() ) // Si on a pas les droits
return false; 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 if( !$this->checkParams($params) ) // Verification de tous les types
return false; return false;
/* [8] Récupèration des options /* [7] Récupèration des options
=========================================================*/ =========================================================*/
$this->buildOptions(); $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 = $params;
$this->params['HTTP_METHOD'] = $this->http_method; $this->params['HTTP_METHOD'] = $this->http_method;
@ -137,7 +131,7 @@
/* (1) Check instance type */ /* (1) Check instance type */
if( !($instance instanceof AuthSystem) ) if( !($instance instanceof AuthSystem) )
return false; return false;
/* (2) Store instance */ /* (2) Store instance */
self::$authsystem = $instance; self::$authsystem = $instance;
} }
@ -318,7 +312,6 @@
/* DESERIALISATION A PARTIR DE L'URL ET DES DONNEES POST (OPT) /* DESERIALISATION A PARTIR DE L'URL ET DES DONNEES POST (OPT)
* *
* @url<String> Contenu de l'url formatté (commence à "/module/methode") * @url<String> Contenu de l'url formatté (commence à "/module/methode")
* @post<Array> [opt] Tableau des donnes
* *
* @return instance<Request> Retourne un objet de type <Request> * @return instance<Request> Retourne un objet de type <Request>
* *
@ -329,11 +322,17 @@
* les données peuvent être dans les données $_POST * les données peuvent être dans les données $_POST
* *
*/ */
public static function remote($url, $data=null){ public static function remote($url){
is_null($data) && ($data = []);
/* [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 */ /* (1) Si le path est dans @url */
$pathInUrl = is_string($url) && preg_match('#^/?([\w_-]+/[\w_-]+)(?:/?|/((?:\w+/)*(?:\w+/?)))$#', $url, $urlMatches); $pathInUrl = is_string($url) && preg_match('#^/?([\w_-]+/[\w_-]+)(?:/?|/((?:\w+/)*(?:\w+/?)))$#', $url, $urlMatches);
@ -473,7 +472,7 @@
$classname = '\\api\\core\\AuthSystemDefault'; $classname = '\\api\\core\\AuthSystemDefault';
self::$authsystem = new $classname(); self::$authsystem = new $classname();
} }
// Check permission using user-implemented AuthSystem // Check permission using user-implemented AuthSystem
$granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] ); $granted = self::$authsystem::permission( $this->path['module'], $method['permissions'] );

View File

@ -133,7 +133,7 @@
/* (4) api/module/method -> Api */ /* (4) api/module/method -> Api */
$R->post('api(?:(/.*))/?', function($url){ $R->post('api(?:(/.*))/?', function($url){
$request = Request::remote($url[0], $_POST); $request = Request::remote($url[0]);
$answer = $request->dispatch(); $answer = $request->dispatch();
// Si c'est une réponse (et non un download) // Si c'est une réponse (et non un download)