new archi + inscription fonctionnel (sans les gestions d'erreur)

pull/35/head
Leo Tuaillon 1 year ago
parent ca79f102cf
commit 7772e9da45

@ -0,0 +1,6 @@
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /php/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

@ -1,16 +0,0 @@
<?php
/** PC IUT - PHP 8.1 */
/** Chargement config */
require_once __DIR__ . '/src/config/config.php';
require __DIR__ . '/vendor/autoload.php';
/** Configuration twig */
$loader = new \Twig\Loader\FilesystemLoader('vues');
$twig = new \Twig\Environment($loader, [
'cache' => false,
'debug' => true
]);
$cont = new App\controleur\FrontControleur();

@ -0,0 +1,16 @@
<?php
/** PC IUT - PHP 8.1 */
/** Chargement config */
require_once __DIR__ . '/../src/config/config.php';
require __DIR__ . '/../vendor/autoload.php';
/** Configuration twig */
$loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/../templates');
$twig = new \Twig\Environment($loader, [
'cache' => false,
'debug' => true
]);
$cont = new \App\controleur\FrontControleur();

@ -0,0 +1,17 @@
<?php
spl_autoload_register(function ($class) {
$prefix = 'MyProject\\';
$baseDir = __DIR__;
$class = ltrim($class, '\\');
$file = '';
if (0 === strpos($class, $prefix)) {
$class = substr($class, strlen($prefix));
$file = $baseDir . '/' . str_replace('\\', '/', $class) . '.php';
}
if (file_exists($file)) {
require $file;
}
});

@ -7,6 +7,6 @@ $rep = __DIR__ . '/php/';
$dConfig['includes']= array('controleur/Validation.php'); $dConfig['includes']= array('controleur/Validation.php');
//BD //BD
$base = ''; $base = 'mysql:host=localhost;dbname=dbAlica';
$login = ''; $login = 'root';
$mdp = ''; $mdp = '';

@ -52,13 +52,13 @@ class UtilisateurControleur
// Validez les données d'inscription, par exemple, vérifiez si l'email est unique // Validez les données d'inscription, par exemple, vérifiez si l'email est unique
// Vous pouvez également effectuer d'autres validations nécessaires // Vous pouvez également effectuer d'autres validations nécessaires
$userModel = new \App\models\UtilisateurModele(); $userModel = new \App\modele\UtilisateurModele();
$nouvelUtilisateur = $userModel->inscription($email, $motDePasse); $nouvelUtilisateur = $userModel->inscription($email, $motDePasse);
// Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation // Si l'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription // Vous pouvez également gérer les erreurs ici en cas d'échec de l'inscription
if ($nouvelUtilisateur instanceof \App\metier\Alumni) { if ($nouvelUtilisateur instanceof \App\modele\Alumni) {
// L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation // L'inscription a réussi, redirigez l'utilisateur vers une page de confirmation
// par exemple : // par exemple :
header('Location: index.php?action=inscription_success'); header('Location: index.php?action=inscription_success');

@ -1,26 +1,28 @@
<?php <?php
namespace App\dal\gateway; namespace App\gateway;
use PDO; use PDO;
class AlumniGateway class AlumniGateway
{ {
private \App\dal\Connection $con; private \App\gateway\Connection $con;
/** /**
* @param $con * @param $con
*/ */
public function __construct(\App\dal\Connection $con){ public function __construct(\App\gateway\Connection $con){
$this->con = $con; $this->con = $con;
} }
public function insert(string $email, string $motDePasse, string $role){ public function insert(string $email, string $motDePasse, string $role){
$query='INSERT INTO Alumni VALUES (:e, :m, :r)'; $query = 'INSERT INTO Alumni (mail, mdp, role) VALUES (:mail, :mdp, :role)';
return $this->con->executeQuery($query, array( return $this->con->executeQuery($query, array(
':e' => array($email, PDO::PARAM_STR), ':mail' => array($email, PDO::PARAM_STR),
':m' => array($motDePasse, PDO::PARAM_STR), ':mdp' => array($motDePasse, PDO::PARAM_STR),
':r' => array($role, PDO::PARAM_STR) ':role' => array($role, PDO::PARAM_STR)
)); ));
} }
public function updateEmail(int $id, string $newEmail){ public function updateEmail(int $id, string $newEmail){
$query='UPDATE Alumni SET email=:new WHERE id=:i'; $query='UPDATE Alumni SET email=:new WHERE id=:i';
$this->con->executeQuery($query, array( $this->con->executeQuery($query, array(

@ -1,6 +1,7 @@
<?php <?php
namespace App\dal; namespace App\gateway;
use PDO; use PDO;
class Connection extends \PDO { class Connection extends \PDO {
/** /**

@ -1,13 +1,13 @@
<?php <?php
namespace App\dal\gateway; namespace App\gateway;
class EvenementGateway class EvenementGateway
{ {
private \App\dal\Connection $con; private \App\gateway\Connection $con;
/** /**
* @param $con * @param $con
*/ */
public function __construct(\App\dal\Connection $con){ public function __construct(\App\gateway\Connection $con){
$this->con = $con; $this->con = $con;
} }

@ -1,13 +1,13 @@
<?php <?php
namespace App\dal\gateway; namespace App\gateway;
class OffreGateway class OffreGateway
{ {
private \App\dal\Connection $con; private \App\gateway\Connection $con;
/** /**
* @param $con * @param $con
*/ */
public function __construct(\App\dal\Connection $con){ public function __construct(\App\gateway\Connection $con){
$this->con = $con; $this->con = $con;
} }

@ -1,9 +1,6 @@
<?php <?php
namespace App\models; namespace App\modele;
use App\metier\Alumni;
use App\metier\Offre;
class AdminModele extends MembreModele class AdminModele extends MembreModele
{ {
@ -11,7 +8,7 @@ class AdminModele extends MembreModele
* @description supprimer un compte * @description supprimer un compte
* @param Alumni $account compte à supprimer * @param Alumni $account compte à supprimer
*/ */
public function deleteAccount(\App\metier\Alumni $account) public function deleteAccount(\App\modele\Alumni $account)
{ {
// TO DO // TO DO
} }

@ -1,6 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Alumni{ class Alumni{
/** /**

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Article class Article
{ {
/** /**

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Evenement class Evenement
{ {
/** /**

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Experience class Experience
{ {
/** /**

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Formation class Formation
{ {
/** /**

@ -1,6 +1,6 @@
<?php <?php
namespace App\models; namespace App\modele;
class MembreModele extends UtilisateurModele class MembreModele extends UtilisateurModele
{ {

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
enum TypeContrat enum TypeContrat
{ {
case CDI; case CDI;
@ -51,9 +52,9 @@ class Offre
private string $imageUrl; private string $imageUrl;
/** /**
* @var TypeContrat Type de contrat * @var \App\metier\TypeContrat Type de contrat
*/ */
private TypeContrat $typeContrat; private \App\metier\TypeContrat $typeContrat;
/** /**
* @var string Ville * @var string Ville
@ -71,9 +72,9 @@ class Offre
private string $descriptifPoste; private string $descriptifPoste;
/** /**
* @var ProfilRecherche Profil recherché * @var \App\metier\ProfilRecherche Profil recherché
*/ */
private ProfilRecherche $profil; private \App\metier\ProfilRecherche $profil;
/** /**
* @var string Experience * @var string Experience
@ -81,9 +82,9 @@ class Offre
private string $experience; private string $experience;
/** /**
* @var NiveauEtudes Niveau d'études * @var \App\metier\NiveauEtudes Niveau d'études
*/ */
private NiveauEtudes $niveauEtudes; private \App\metier\NiveauEtudes $niveauEtudes;
/** /**
* @var string Email de contact * @var string Email de contact
@ -106,18 +107,18 @@ class Offre
* @param string $nom * @param string $nom
* @param string $description * @param string $description
* @param string $imageUrl * @param string $imageUrl
* @param TypeContrat $typeContrat * @param \App\metier\TypeContrat $typeContrat
* @param string $ville * @param string $ville
* @param string $entreprise * @param string $entreprise
* @param string $descriptifPoste * @param string $descriptifPoste
* @param Profil $profil * @param Profil $profil
* @param string $experience * @param string $experience
* @param NiveauEtudes $niveauEtudes * @param \App\metier\NiveauEtudes $niveauEtudes
* @param string $mailContact * @param string $mailContact
* @param string $numero * @param string $numero
* @param string $siteUrl * @param string $siteUrl
*/ */
public function __construct(int $id, Alumni $offreur, string $nom, string $description, string $imageUrl, TypeContrat $typeContrat, string $ville, string $entreprise, string $descriptifPoste, Profil $profil, string $experience, NiveauEtudes $niveauEtudes, string $mailContact, string $numero, string $siteUrl) public function __construct(int $id, Alumni $offreur, string $nom, string $description, string $imageUrl, \App\metier\TypeContrat $typeContrat, string $ville, string $entreprise, string $descriptifPoste, Profil $profil, string $experience, \App\metier\NiveauEtudes $niveauEtudes, string $mailContact, string $numero, string $siteUrl)
{ {
$this->id = $id; $this->id = $id;
$this->offreur = $offreur; $this->offreur = $offreur;
@ -161,7 +162,7 @@ class Offre
return $this->imageUrl; return $this->imageUrl;
} }
public function getTypeContrat(): TypeContrat public function getTypeContrat(): \App\metier\TypeContrat
{ {
return $this->typeContrat; return $this->typeContrat;
} }
@ -191,7 +192,7 @@ class Offre
return $this->experience; return $this->experience;
} }
public function getNiveauEtudes(): NiveauEtudes public function getNiveauEtudes(): \App\metier\NiveauEtudes
{ {
return $this->niveauEtudes; return $this->niveauEtudes;
} }

@ -1,5 +1,6 @@
<?php <?php
namespace App\metier; namespace App\modele;
class Profil class Profil
{ {
/** /**

@ -1,5 +1,5 @@
<?php <?php
namespace App\metier; namespace App\modele;
enum Role enum Role
{ {
case Admin; case Admin;

@ -1,5 +1,5 @@
<?php <?php
namespace App\models; namespace App\modele;
class UtilisateurModele class UtilisateurModele
{ {
/** /**
@ -16,12 +16,12 @@ class UtilisateurModele
* @description se connecter * @description se connecter
* @param string email * @param string email
* @param string hash * @param string hash
* @return \App\metier\Alumni * @return \App\modele\Alumni
*/ */
public function Login(string $email,string $hash) : \App\metier\Alumni public function Login(string $email,string $hash) : \App\modele\Alumni
{ {
// TO DO // TO DO
return new \App\metier\Alumni(null,null,null); return new \App\modele\Alumni(null,null,null);
} }
/** /**
@ -31,23 +31,23 @@ class UtilisateurModele
* @param string $pseudo * @param string $pseudo
* @return \Alumni chargé * @return \Alumni chargé
*/ */
public function inscription(string $email, string $hashpassword): \App\metier\Alumni public function inscription(string $email, string $hashpassword): \App\modele\Alumni
{ {
$dsn = "mysql:host=localhost;dbname=dbAlumni"; $dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "root"; $username = "Dev";
$password = ""; $password = "Dev";
$role = "Utilisateur"; $role = "Utilisateur";
$con = new \App\dal\Connection($dsn, $username, $password); $con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\dal\gateway\AlumniGateway($con); $gate = new \App\gateway\AlumniGateway($con);
// Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway // Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
if ($gate->insert($email, $hashpassword, $role)) { if ($gate->insert($email, $hashpassword, $role)) {
// L'insertion a réussi, retournez le nouvel utilisateur // L'insertion a réussi, retournez le nouvel utilisateur
$nouvelUtilisateur = new \App\metier\Alumni($email, $hashpassword, $role); $nouvelUtilisateur = new \App\modele\Alumni($email, $hashpassword, $role);
return $nouvelUtilisateur; return $nouvelUtilisateur;
} else { } else {
// L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec // L'insertion a échoué, renvoyez un utilisateur vide pour indiquer l'échec
return new \App\metier\Alumni(null, null, null); return new \App\modele\Alumni(null, null, null);
} }
} }
} }

@ -1,8 +0,0 @@
<?php
namespace App\models;
class ModerateurControleur
{
}

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="css/accueil.css"> <link rel="stylesheet" type="text/css" href="../public/css/accueil.css">
<title>Alica - Accueil</title> <title>Alica - Accueil</title>
</head> </head>
@ -15,7 +15,7 @@
<p>Vous pouvez aussi consulter les articles</p> <p>Vous pouvez aussi consulter les articles</p>
<p>Vous pouvez aussi consulter les annonces</p> <p>Vous pouvez aussi consulter les annonces</p>
<p>Connexion :</p> <p>Connexion :</p>
<form action="index.php?action=connection" method="POST"> <form action="../public/index.php?action=connection" method="POST">
<input type="submit" value="Se connecter"> <input type="submit" value="Se connecter">
</form> </form>
</body> </body>

@ -4,7 +4,7 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Alica - Connexion</title> <title>Alica - Connexion</title>
<link rel="stylesheet" type="text/css" href="css/connexion.css"> <link rel="stylesheet" type="text/css" href="../public/css/connexion.css">
</head> </head>
<body> <body>
<div class="container"> <div class="container">
@ -37,7 +37,7 @@
</form> </form>
<div class="CadreInput"> <div class="CadreInput">
<div class="box"> <div class="box">
<form action="index.php?action=inscription" method="POST"> <form action="../public/index.php?action=inscription" method="POST">
<input type="submit" class="other" value="S'inscrire"> <input type="submit" class="other" value="S'inscrire">
</form> </form>
</div> </div>

@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" type="text/css" href="css/erreur.css"> <link rel="stylesheet" type="text/css" href="../public/css/erreur.css">
<title>Alica - Erreur</title> <title>Alica - Erreur</title>
</head> </head>
@ -14,7 +14,7 @@
<p>{{value}}</p> <p>{{value}}</p>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
<form action="index.php?action=accueil" method="POST"> <form action="../public/index.php" method="POST">
<input type="submit" value="Retourner à l'accueil"> <input type="submit" value="Retourner à l'accueil">
</form> </form>
</body> </body>

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Alica - Inscription</title> <title>Alica - Inscription</title>
<link rel="stylesheet" type="text/css" href="css/inscription.css"> <link rel="stylesheet" type="text/css" href="../public/css/inscription.css">
</head> </head>
<body> <body>
<div class="container"> <div class="container">
@ -45,7 +45,7 @@
</form> </form>
<div class="CadreInput"> <div class="CadreInput">
<div class="box"> <div class="box">
<form action="index.php?action=connection" method="POST"> <form action="../public/index.php?action=connection" method="POST">
<input class="other" type="submit" value="Se connecter"> <input class="other" type="submit" value="Se connecter">
</form> </form>
</div> </div>

@ -3,7 +3,7 @@
'name' => '__root__', 'name' => '__root__',
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '68bdbc2afe49996b3ceec196c42f5e25b3edec96', 'reference' => 'ca79f102cff2316dd789a28ba980fe14643acaa0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),
@ -13,7 +13,7 @@
'__root__' => array( '__root__' => array(
'pretty_version' => 'dev-master', 'pretty_version' => 'dev-master',
'version' => 'dev-master', 'version' => 'dev-master',
'reference' => '68bdbc2afe49996b3ceec196c42f5e25b3edec96', 'reference' => 'ca79f102cff2316dd789a28ba980fe14643acaa0',
'type' => 'library', 'type' => 'library',
'install_path' => __DIR__ . '/../../', 'install_path' => __DIR__ . '/../../',
'aliases' => array(), 'aliases' => array(),

BIN
php/vues/.DS_Store vendored

Binary file not shown.
Loading…
Cancel
Save