Programmation objet, BD et PDO.
public_html
avec l'url
http://dwarves.arda/public_html/~login
http://dwarves.arda/phpmyadmin
Voici la définition d'une classe personne
:
<?php class personne { protected $id; protected $nom; protected $prenom; } ?>
Ajoutez :
__construct
__toString
Testez
contact
en rajoutant un attribut email
. Rédéfinissez le constructeur et la méthode
d'affichage.
On veut stocker nos contacts dans une base de données. Créez une table correspondante sur le serveur mysql.
Le dialogue avec le serveur, établi au moyen de PDO,
sera centraliser dans une classe
Database
:
<?php class Database { static protected $_instance = null; protected $_db; static public function getInstance() { } public function query($sql){ } public function prepare($sql){ } protected function __construct() { } } ?>
Compléter la classe
Le lien avec la base mysql sera aussuré par un objet de type PDO
La méthode statique (pourquoi ?) getInstance
renverra l'attribut statique (pourquoi ?) $_instance
s'il a déjà été initialisé, sinon le créera avant de le retourner.
query
et prepare
encapsule les méthodes du même nom de PDO.
contact
les deux méthodes statiques
public static function getFromId($id) public static function getList()
qui permettent de récupérer des contacts depuis la base de données.
Testez
RemarqueOn peut récupérer avec PDO, directement sous forme d'instances d'une classe le(s) résultat(s) d'un select en précisant le "fetchMode" :
$stmt->setFetchMode(PDO::FETCH_CLASS, "contact")
Dans l'affichage précédent, on veut que chaque contact soit un lien que l'on puisse ouvrir dans une nouvelle page.
Ajouter dans la classe contact
une méthode afficherLienHtml
qui permet de formater le lien :
<a target="_blank" href="./editer.php?id=3">Denis Monnerat</a>
editer.php