1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
<?php
class FrontController {
/**
* @var String $url
*/
private $url;
/**
* @var String connection
*/
private $connection;
/**
* @var String connection
*/
private $session;
/**
* @var String $connect
*/
private $config;
/**
* @var array $request
*/
private $request;
/**
* @var array $file
*/
private $files;
/**
* @var String Message d'erreur.
*/
private $erreur;
/**
* @var String Langue des données a afficher.
*/
private $langue;
/**
* @var Array Eléments d'une page
*/
private $data;
/**
* Constructeur
* @param String $p_url
* @param array $p_request
*/
function __construct ($p_url, $p_request, $p_file=null, $p_langue, $p_session) {
//On dit au système qu'on est dans le front controller
define('CONTROLLER', 'FRONT');
$this->url = $p_url;
$this->request = $p_request;
$this->langue = $p_langue;
$this->connection = new Bdd (DB, USER, PASS, HOST);
$this->session = $p_session;
$this->erreur = $this->is_valid ();
//connection, déconnexion des clients
if ($this->url->getParam('mod') === 'client' && $this->url->getParam('option') === 'deconnexion') {
unset($_SESSION['client']);
}
//Un clietn essaie de se connecter soit en passsant par le système du compte client ou lors du paiement d'une commande, on l'identifie et on stocke l'objet contenant les infos du client dans un evariable globale qui pourra être utilisé n'importe ou dans les controllers.
if (($this->url->getParam('mod') === 'client' && $this->url->getParam('option') === 'connection') || (isset($this->request['email']) && isset($this->request['pass']))) {
global $client;
$client = new Client(0);
if ($client->connectClient ($this->request['email'], $this->request['pass'])) {
$_SESSION['client'] = serialize($client);
$GLOBALS['client'] = unserialize($_SESSION['client']);
}
}
//client est déjà connecté on créé une variable globale avec le contenu de l'objet client afin de pouvoir s'en servir comme on le veut dans les controll.
else if (session_is_registered('client')) {
$GLOBALS['client'] = unserialize($_SESSION['client']);
$GLOBALS['client']->getInfoFromId();
}
}
} |
Partager