6-Classes et classes DAO Flashcards
créer classe
class Disque {
// Propriétés
private $artiste;
private $titre;
private $nbChansons;
}
instancier obj dune classe
$unDisque = new Disque ();
accès attributs ou methode
$disque->artiste = “allo”; //public
$disque->setArtiste(“bob”); //private
declarer methode
public function setNbChansons(int $qte) : void
{
$this->nbChansons = $qte;
}
utilisation this
$this->nbChansons
exception
if ($valeur < 0) ) {
throw new Exception(‘Le nombre de chansons doit être supérieur ou égale à 0’, E_USER_ERROR1);
}
constructeur
public function __construct(string $artiste,string $titre, int
$nbChansons)
{
$this->setArtiste($artiste);
$this->setTitre($titre);
$this->setNbChansons($nbChansons);
}
__toString()
public function __toString() : string
{
return $this->getNom() . ‘, ‘ . $this->getPrenom();
}
Créer classe DAO
class PersonneDao
{
}
attribut et constructeur de DAO
private $db; // Instance de PDO
public function __construct(PDO $db)
{
$this->setDb($db);
}
add
public function add(Personne $perso) : void
{
$req = $this->db->prepare(‘INSERT INTO personnes (nom, prenom) VALUES (:nom, :prenom)’);
$req->bindValue(':nom', $perso->getNom(), PDO::PARAM_STR); $req->bindValue(':prenom', $perso->getPrenom(), PDO::PARAM_STR); $req->execute(); $req->closeCursor();
}
delete
public function delete(Personne $perso) : void
{
$req = $this->db->prepare(‘DELETE FROM personnes WHERE id = :id’);
$req->bindValue(‘:id’, $perso->getId(), PDO::PARAM_INT);
$req->execute();
$req->closeCursor(); }
get
public function get(int $id) : Compte
{
$id = (int) $id;
$req = $this->db->prepare('SELECT nom, anneeNaissance, solde FROM compte WHERE id = :id'); $req->bindValue(':id', $id, PDO::PARAM_INT); $req->execute(); $compte = $req->fetch(); $objCompte = new Compte($compte['nom'], $compte['anneeNaissance'], $compte['solde']); // Je dois ajouter le id à la main car le constructeur ne le prend pas en paramètre $objCompte->setId($id); $req->closeCursor(); return $objCompte; }
update
public function update(Compte $compte) : void
{
$req = $this->db->prepare(‘UPDATE Compte SET solde = :solde WHERE id = :id’);
$req->bindValue(':solde', $compte->getSolde(), PDO::PARAM_STR); $req->bindValue(':id', $compte->getId(), PDO::PARAM_INT); $req->execute(); $req->closeCursor(); }
set db
public function setDb(PDO $db) : void
{
$this->db = $db;
}