Bonjour,
l'appel à une class placée dans model/manager pose pb : erreur 500
si on la place directement dans le dossier model, cela fonctionne
Je n'ai pas de soucis en développement.
le code appelant qui s'arrête à la ligne $managerUtilisateur=new UtilisateurManager($database); qui plante :
en début de code :
use Model\Manager\UtilisateurManager;
UtilisateurManagement :
MERCI !
l'appel à une class placée dans model/manager pose pb : erreur 500
si on la place directement dans le dossier model, cela fonctionne
Je n'ai pas de soucis en développement.
le code appelant qui s'arrête à la ligne $managerUtilisateur=new UtilisateurManager($database); qui plante :
PHP:
$password=Utilisateur::generatePassword();
$utilisateur=new Utilisateur(array('civilite'=>$validated_data['civilite'],'nom'=>$validated_data['nom'],'prenom'=>$validated_data['prenom'],'mail'=>$validated_data['mail'],'password'=>$password,'tel'=>$validated_data['tel'],'adresse'=>$validated_data['adresse'],'cp'=>$validated_data['cp'],'ville'=>$validated_data['ville']));
$database = Database::getInstance();
$managerUtilisateur=new UtilisateurManager($database);
$retour=$managerUtilisateur->add($utilisateur);
echo "retour=".$retour;
switch($retour)
use Model\Manager\UtilisateurManager;
UtilisateurManagement :
PHP:
<?php
//
//
namespace Model\Manager;
use PDO;
use Exception;
use Model\Utilisateur;
class UtilisateurManager{
protected $_db;
const OPTION = 11;
public function __construct($db)
{
$this->setDb($db);
}
public function get($info)
{
if (is_int($info))
{
$q = $this->_db->query('SELECT * FROM utilisateur WHERE id = '.$info);
$utilisateur = $q->fetch(PDO::FETCH_ASSOC);
}
else
{
$q = $this->_db->prepare('SELECT * FROM utilisateur WHERE mail = :mail');
$q->execute(array(':mail' => $info));
$utilisateur = $q->fetch(PDO::FETCH_ASSOC);
}
return ($utilisateur)?new Utilisateur($utilisateur):0;
}
/*RECUPERE LISTE CLIENTS*/
public function getList()
{
$utilisateur = array();
$q = $this->_db->query('SELECT * FROM utilisateur');
while ($donnees = $q->fetch(PDO::FETCH_ASSOC)){
$utilisateur[] = new Utilisateur($donnees);
}
return ($utilisateur)?$utilisateur:0;
}
public function add(Utilisateur $utilisateur)
{
$q = $this->_db->prepare('SELECT * FROM utilisateur WHERE mail = :mail');
$q->execute(array(':mail' => $utilisateur->mail()));
$result=$q->fetch(PDO::FETCH_ASSOC);
echo "result=".$result;
if($result)
return Utilisateur::ADD_CLIENT_DOUBLON;
else
{
try{
$options = array('cost' => self::OPTION);
$q = $this->_db->prepare('INSERT INTO utilisateur (civilite,nom,prenom,mail,password,tel,adresse,cp,ville,actif) VALUES :)civilite,:nom,:prenom,:mail,:password,:tel,:adresse,:cp,:ville,:actif)');
$q->execute(array('civilite'=>$utilisateur->civilite(),'nom'=>$utilisateur->nom(),'prenom'=>$utilisateur->prenom(),'mail'=>$utilisateur->mail(),'password'=>password_hash($utilisateur->password(), PASSWORD_BCRYPT, $options),'tel'=>$utilisateur->tel(),'adresse'=>$utilisateur->adresse(),'cp'=>$utilisateur->cp(),'ville'=>$utilisateur->ville(),'actif'=>"0"));
}catch (Exception $e){
echo 'Error PDO : '.$e;
$return = false;
}
return Utilisateur::ADD_CLIENT_OK;
}
}
public function update(Utilisateur $utilisateur){
try{
$q = $this->_db->prepare('SELECT * FROM utilisateur WHERE id = :id');
$q->execute(array(':id' => $utilisateur->id()));
if($q->rowCount() == 1) {
$q = $this->_db->prepare('UPDATE utilisateur set civilite = :civilite, nom = :nom, prenom = :prenom, tel = :tel, adresse = :adresse, cp = :cp, ville =:ville WHERE id = :id');
$q->execute(array('civilite'=>$utilisateur->civilite(),'nom'=>$utilisateur->nom(),'prenom'=>$utilisateur->prenom(),'tel'=>$utilisateur->tel(),'adresse'=>$utilisateur->adresse(),'cp'=>$utilisateur->cp(),'ville'=>$utilisateur->ville(),'id'=>$utilisateur->id()));
return $utilisateur;
} else
return false;
}catch (Exception $e){
echo 'Error PDO : '.$e;
$return = false;
}
}
public function connect($identifiant,$password)
{
$q = $this->_db->prepare("SELECT * FROM Utilisateur WHERE mail = :mail");
$q->execute(array(':mail' => $identifiant));
if($q->rowCount()==1)
{
$utilisateur=$q->fetch(PDO::FETCH_ASSOC);
if(password_verify($password, $utilisateur["password"]))
{
if ($utilisateur["actif"] == false) // teste si le compte trouvé est actif
{
return Utilisateur::CONNECT_CLIENT_INACTIF;
}
else
{
return ($utilisateur)?new Utilisateur($utilisateur):0;
}
}
else
return Utilisateur::CONNECT_CLIENT_ERREUR;
}
return Utilisateur::CONNECT_CLIENT_MISS;
}
/*VERIFICATION DOUBLON*/
public function doublon($mail)
{
return $this->_db->query('SELECT * FROM utilisateur WHERE mail = '.$this->_db->quote($mail))->rowcount();
}
public function setDb(PDO $db)
{
$this->_db = $db;
}
}
Dernière édition par un modérateur: