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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
<?php
class Breve
{
protected $_id;
protected $_nom;
protected $_ecole_id;
//déclaration de l'attribut statique $error
protected static $error;
//déclaration des messages d'erreur dans des constantes
const MSG_ERROR_ID = 'ID doit être un entier.';
const MSG_ERROR_NOM = 'NOM doit être une chaine de caractère.';
const MSG_ERROR_ECOLE_ID = 'ECOLE_ID doit être un entier';
const MSG_ERROR_END = 'L\'objet ne peut être créé.';
/* le constructeur intègre désormais une verification de $error*/
public function __construct(array $data)
{
$this->setId($data['id']);
$this->setNom($data['nom']);
$this->setEcole_id($data['ecole_id']);
//utilisation de self:: pour accéder a error
if(!empty(self::$error)){
throw new Exception(self::$error . self::MSG_ERROR_END);
}
}
//setter
//gestion des erreurs
public function setError($msg)
{
self::$error = $msg;
}
public function getError()
{
return self::$error;
}
//appel de setError si la valeur attendue n'est pas conforme
public function setId($id)
{
if((is_int($id)) AND ($id >0))
{//affecte à $_id a valeur $id passé en argument
$this->_id = $id;
}
else{
$this->setError(self::MSG_ERROR_ID);
}
}
public function setNom($nom)
{
if (is_string($nom))
{
//affecte à $_id a valeur $nom passée en argument
$this->_nom = $nom;
}
else{
$this->setError(self::MSG_ERROR_NOM);
}
}
public function setEcole_id($ecole_id)
{
if((is_int($ecole_id)) AND ($ecole_id >0))
{//affecte à $_ecole_id a valeur $ecole_id passé en argument
$this->_ecoleid = $ecole_id;
}
else{
$this->setError(self::MSG_ERROR_ECOLE_ID);
}
}
//getter
public function getId()
{
//permet de récupérer la valeur de l'attribut $_id
return $this->_id;
}
public function getNom(){
//permet de récupérer la valeur de l'attribut $_nom
return $this->_nom;
}
public function getEcole_id(){
//permet de récupérer la valeur de l'attribut $_ecole_id
return $this->_ecole_id;
}
}
class breveManager
{
private $_db; //instance de PDO
public function __construct($db)
{
$this->setDb($db);
}
public function setDb(PDO $dbh)//Un objet PDO et attendu
{
$this->_db=$dbh;
}
public function addBreve(Breve $breve)// Un objet Breve est attendu
{
$sql = 'INSERT INTO eleves (id, nom, ecole_id) VALUES (:id, :nom, :ecole_id)';
$stmnt = $this->_db->prepare($sql);
$valeurId = htmlspecialchars($breve->getId());
$valeurNom = htmlspecialchars($breve->getNom());
$valeurEcole_id = htmlspecialchars($breve->getEcole_id());
$stmnt->bindParam(':id', $valeurId);
$stmnt->bindParam(':nom', $valeurNom);
$stmnt->bindParam(':ecole_id',$valeurEcole_id);
$stmnt->execute();
}
}
try
{
//$aleatoire_ecole_id = rand(1,3);
$values = array('id'=> 22, 'nom' => 'Fred', 'ecole_id' => 3);
$breve = new Breve($values);
//affectation de la variable $db de la connexion PDO
$db = new PDO('mysql:host=localhost;dbname=dbdevoir','root','');
//instanciation de la classe breveManager, nous créons un objet manager
//La connexion PDO est passé en paramêtre au constructeur.
$manager = new breveManager($db);
//appel de la méthode addBreve, nous passons un objet breve en argument.
$manager->addBreve($breve);
//le manager a ajouté la nouvelle breve, à vérifier dans la base de donnée
}
catch (Exception $e)
{
echo $e->getMessage();
}
?> |
Partager