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');
//BD
$base = '';
$login = '';
$base = 'mysql:host=localhost;dbname=dbAlica';
$login = 'root';
$mdp = '';

@ -52,13 +52,13 @@ class UtilisateurControleur
// Validez les données d'inscription, par exemple, vérifiez si l'email est unique
// Vous pouvez également effectuer d'autres validations nécessaires
$userModel = new \App\models\UtilisateurModele();
$userModel = new \App\modele\UtilisateurModele();
$nouvelUtilisateur = $userModel->inscription($email, $motDePasse);
// 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
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
// par exemple :
header('Location: index.php?action=inscription_success');

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1,5 +1,5 @@
<?php
namespace App\models;
namespace App\modele;
class UtilisateurModele
{
/**
@ -16,12 +16,12 @@ class UtilisateurModele
* @description se connecter
* @param string email
* @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
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
* @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";
$username = "root";
$password = "";
$dsn = "mysql:host=localhost;dbname=dbAlica";
$username = "Dev";
$password = "Dev";
$role = "Utilisateur";
$con = new \App\dal\Connection($dsn, $username, $password);
$gate = new \App\dal\gateway\AlumniGateway($con);
$con = new \App\gateway\Connection($dsn, $username, $password);
$gate = new \App\gateway\AlumniGateway($con);
// Insérez le nouvel utilisateur dans la base de données en utilisant AlumniGateway
if ($gate->insert($email, $hashpassword, $role)) {
// 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;
} else {
// 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>
<meta charset="UTF-8" />
<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>
</head>
@ -15,7 +15,7 @@
<p>Vous pouvez aussi consulter les articles</p>
<p>Vous pouvez aussi consulter les annonces</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">
</form>
</body>

@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<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>
<body>
<div class="container">
@ -37,7 +37,7 @@
</form>
<div class="CadreInput">
<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">
</form>
</div>

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<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>
</head>
@ -14,7 +14,7 @@
<p>{{value}}</p>
{% endfor %}
{% endif %}
<form action="index.php?action=accueil" method="POST">
<form action="../public/index.php" method="POST">
<input type="submit" value="Retourner à l'accueil">
</form>
</body>

@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<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>
<body>
<div class="container">
@ -45,7 +45,7 @@
</form>
<div class="CadreInput">
<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">
</form>
</div>

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

BIN
php/vues/.DS_Store vendored

Binary file not shown.
Loading…
Cancel
Save