mise en place des requètes HTTP1.1 dans le core du MVC afin qu'elles soient utilisable simplement

TODO: tester les requètes HTTP1.1 , sécuriser les accès par un fichier config similaire a l'applet Discourse faite pour Tinternet

TODO: ajouter un plug-in symfony permettant de charger un utilisateur dans les apps a partir de l'authentification multiple

TODO: lire les documentation officielles provenant des 4 plate-formes tranquillement afin de comprendre commet doit on tester ces type d'auth quitte a créé un sous domaine particulier directement hebergé sur gittea
 -->Sécuriser le serveur de dev
This commit is contained in:
Emmanuel ROY 2019-12-02 19:01:38 +01:00
parent 2f2662ada7
commit 9bfc904555
8 changed files with 168 additions and 8 deletions

View file

@ -9,13 +9,50 @@ class Controlleur{
public function __construct($application){
if($application->url->page['control']){
$url_params = $application->url->page['params'];
require TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '.php';
} else {
$this->modele = new Modele($application->url->page);
$this->vue = new Vue($this);
$requete = new MVC\Classe\Request();
switch ($requete->method) {
//cas des requètes PUT et DELETE
case 'PUT':
case 'DELETE':
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . 'HttpReponse.php';
$reponseHttp = lcfirst($application->url->page['name']) . 'HttpReponse';
$response = new $reponseHttp($application->url, $requete->getData());
if ($requete->method == 'DELETE') {
$reponseHttp->delete();
} else {
$reponseHttp->put();
}
break;
//cas des requètes POST et GET
case 'POST':
case 'GET':
if (!file_exists(CONTROLLER_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '')) {
require CONTROLLER_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . 'HttpReponse.php';
$reponseHttp = lcfirst($application->url->page['name']) . 'HttpReponse';
$response = new $reponseHttp($application->url, $requete->getData());
if ($requete->method == 'POST') {
$reponseHttp->post();
} else {
$reponseHttp->get();
}
break;
}
default:
if ($application->url->page['control']) {
$url_params = $application->url->page['params'];
require TRAITEMENT_PATH . DIRECTORY_SEPARATOR . $application->url->page['name'] . '.php';
} else {
$this->modele = new Modele($application->url->page);
$this->vue = new Vue($this);
}
}
}
}

View file

@ -0,0 +1,10 @@
<?php
namespace MVC\Classe\Implement\Contrat;
interface HttpReponseInterface
{
public function put();
public function delete();
}

View file

@ -0,0 +1,14 @@
<?php
namespace MVC\Classe\Implement\Contrat;
interface RestReponseInterface
{
public function get();
public function post();
public function put();
public function delete();
}

View file

@ -0,0 +1,32 @@
<?php
namespace MVC\Classe\Implement;
use MVC\Classe\Implement\Contrat\HttpReponseInterface;
class HttpReponse implements HttpReponseInterface
{
public $url;
public $params;
public $data;
public function __contruct($url, $requestData)
{
$this->url = $url;
$this->params = $url['params'];
$this->data = $requestData;
}
public function put()
{
}
public function delete()
{
}
}

View file

@ -0,0 +1,41 @@
<?php
namespace MVC\Classe\Implement;
use MVC\Classe\Implement\Contrat\RestReponseInterface;
class HttpReponse implements RestReponseInterface
{
public $url;
public $params;
public $data;
public function __contruct($url, $requestData)
{
$this->url = $url;
$this->params = $url['params'];
$this->data = $requestData;
}
public function get()
{
}
public function post()
{
}
public function put()
{
}
public function delete()
{
}
}

View file

@ -24,8 +24,13 @@ class Request
case 'POST':
break;
case 'PUT':
$this->data = json_decode(file_get_contents("php://input"), true);
//$this->data['GET'] = ...
//POST DATA except enctype="multipart/form-data"
$this->data['POST'] = json_decode(file_get_contents("php://input"), true);
case 'DELETE':
//$this->data['GET'] = ...
//POST DATA except enctype="multipart/form-data"
$this->data['POST'] = json_decode(file_get_contents("php://input"), true);
break;
default:
// Requête invalide
@ -34,4 +39,9 @@ class Request
}
}
public function getData()
{
return $this->data;
}
}

View file

@ -104,7 +104,7 @@ class Response
public function setGetParamsUrl($url, $params = array())
{
$this->url = $url . (strpos($this->url, '?') ? '' : '?') . http_build_query($params);
$this->url = $url . (strpos($url, '?') ? '&' : '?') . http_build_query($params);
return $this;
}

View file

@ -0,0 +1,16 @@
<?php
use MVC\Classe\Implement\HttpReponse;
class AcceuilHttpReponse extends HttpReponse
{
public function put()
{
echo $this->params . "<br/>" . $this->data;
}
public function delete()
{
}
}