SAND-framework/application/class/Controlleur.php
Emmanuel ROY 9bfc904555 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
2019-12-02 19:01:38 +01:00

58 lines
2 KiB
PHP

<?php
namespace MVC\Classe;
class Controlleur{
public $modele;
public $vue;
public function __construct($application){
$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);
}
}
}
}