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){
/* [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;
@ -318,7 +312,6 @@
/* DESERIALISATION A PARTIR DE L'URL ET DES DONNEES POST (OPT)
*
* @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>
*
@ -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);

View File

@ -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)