Mise en place d'un AutoLoader

ServeurDeTest
Noé GARNIER 2 years ago
parent e12271a57c
commit 8045f7f375

@ -0,0 +1,51 @@
<?php
class Autoload
{
private static $_instance = null;
public static function charger()
{
if(null !== self::$_instance) {
throw new RuntimeException(sprintf('%s is already started', __CLASS__));
}
self::$_instance = new self();
if(!spl_autoload_register(array(self::$_instance, '_autoload'), false)) {
throw new RuntimeException(sprintf('%s : Could not start the autoload', __CLASS__));
}
}
public static function shutDown()
{
if(null !== self::$_instance) {
if(!spl_autoload_unregister(array(self::$_instance, '_autoload'))) {
throw new RuntimeException('Could not stop the autoload');
}
self::$_instance = null;
}
}
private static function _autoload($class)
{
global $rep;
$filename = $class.'.php';
$dir =array('Model/','./','Config/','Controller/');
foreach ($dir as $d){
$file=$rep.$d.$filename;
//echo $file;
if (file_exists($file))
{
include $file;
}
}
}
}
?>

@ -1,13 +1,25 @@
<?php
//préfixe
$rep='../';
$rep = __DIR__ . '/../';
//BD
$dsn = 'mysql:host=londres.uca.local; dbname=dbnogarnier1';
$user = 'nogarnier1';
$password = 'achanger';
// $dsn = 'mysql:host=localhost; dbname=scripted';
// $user = 'root';
// $password = 'p';
//View
//Page
$vues['main'] = 'View/src/pages/Main.php';
$vues['presenation'] = 'View/src/pages/Presentation.html';
$vues['login'] = 'View/src/pages/LogSign/Login.php';
$vues['signUp'] = 'View/src/pages/LogSign/SignUp.php';
//Error
$vues['erreurSignUp'] = 'View/Error/ErreurSignUp.php';
$vues['erreur'] = 'View/Error/Erreur.php';
$vues['erreurBd'] = 'View/Error/ErreurBd.php';

@ -15,8 +15,7 @@ class Controller
$action=$_REQUEST['action'];
switch($action) {
case NULL:
require ('./View/src/pages/Main.php');
//header('Location: http://londres.uca.local/~nogarnier1/Scripted/WEB/View/src/pages/Main.html');
require ($rep.$vues['main']);
break;
case "signUp":
$this->signUp();
@ -36,6 +35,9 @@ class Controller
case "goToSignUp":
$this->goToSignUp();
break;
case "goToEnigme":
$this->goToEnigme();
break;
}
} catch (PDOException $e)
{
@ -54,7 +56,7 @@ class Controller
$joueur = new Joueur($_REQUEST['email'], $_REQUEST['username'], $_REQUEST['password']);
$gateway->insert($joueur);
$_SESSION['connected'] = 'true';
require ('./View/src/pages/Main.php');
require ($rep.$vues['main']);;
}catch (Exception $e){
require($rep.$vues['erreurSignUp']);
}
@ -72,7 +74,7 @@ class Controller
throw new InvalidMdpException("Mot de passe invalide");
}
$_SESSION['connected'] = 'true';
require ('./View/src/pages/Main.php');
require ($rep.$vues['main']);
}catch (JoueurNotFoundException $e){
require($rep.$vues['erreurLoginEmail']);
}catch (InvalidMdpException $m) {
@ -83,7 +85,7 @@ class Controller
private function goToPresentation() {
global $rep, $vues;
try {
require ('./View/src/pages/Presentation.html');
require ($rep.$vues['presenation']);
}catch (Exception $e){
require($rep.$vues['erreur404']);
}
@ -92,7 +94,7 @@ class Controller
private function goToHome() {
global $rep, $vues;
try {
require ('./View/src/pages/Main.php');
require ($rep.$vues['main']);
}catch (Exception $e){
require($rep.$vues['erreur404']);
}
@ -101,7 +103,7 @@ class Controller
private function goToLogin() {
global $rep, $vues;
try {
require ('./View/src/pages/LogSign/Login.php');
require ($rep.$vues['login']);
}catch (Exception $e){
require($rep.$vues['erreur404']);
}
@ -110,7 +112,16 @@ class Controller
private function goToSignUp() {
global $rep, $vues;
try {
require ('./View/src/pages/LogSign/SignUp.php');
require ($rep.$vues['signUp']);
}catch (Exception $e){
require($rep.$vues['erreur404']);
}
}
private function goToEnigme() {
global $rep, $vues;
try {
require ($rep.$vues['enigme']);
}catch (Exception $e){
require($rep.$vues['erreur404']);
}

@ -1,8 +1,4 @@
<?php
require_once "../Model/Partie.php";
require_once "../Config/Connection.php";
class PartieGateway
{
private Connection $con;

@ -27,7 +27,7 @@
</div>
<div class="Presentation">
<div class="Histoire">
<img src="../../assets/img/Renard.png" alt="Foxy">
<img src="./View/assets/img/Renard.png" alt="Foxy">
<div class="Consigne" id="message">
<p>Bonjour utilisateur ! Je suis Foxy, une IA créer par Howard Aiken, un eminent chercheur,
malhereusement celui-ci est mort. J'ai besoin de votre aide pour protéger mon code source d'une organisation

@ -1,24 +1,11 @@
<?php
require_once './Config/Config.php';
require_once "./Config/Connection.php";
require_once './Config/Validation.php';
require_once "./Model/Joueur.php";
require_once "./Model/Enigme.php";
require_once './Controller/JoueurGateway.php';
require_once './Controller/EnigmeGateway.php';
require_once './Controller/JoueurNotFoundException.php';
require_once './Controller/InvalidMdpException.php';
require_once './Controller/Controller.php';
//unset($_SESSION['connected']);
require_once(__DIR__.'/config/config.php');
require_once(__DIR__.'/config/Autoload.php');
Autoload::charger();
$con = new Connection($dsn, $user, $password);
$control = new Controller($con);
session_unset(); //efface les variable session
session_destroy();//détruit la session
$_SESSION = null;//histoire d'être sûre
session_unset();
session_destroy();
$_SESSION = null;
Loading…
Cancel
Save