Iut de Sénart Fontainebleau

Programmation web licence professionnelle bdise

Programmation objet, BD et PDO.

  • Vous utiliserez pour tester vos scripts le serveur dwarves qui sert votre répertoire public_html avec l'url
    http://dwarves.arda/public_html/~login
    
  • Vous diposez également sur le même serveur d'un compte mysql (mêmes identifiants que ceux du réseau interne), que vous pouvez gérer par l'interface phpmyadmin
    http://dwarves.arda/phpmyadmin
    
  • Le but de ce tp est de préparer le modèle du tp prochain sur mvc.
  1. Voici la définition d'une classe personne :

    <?php
    class personne {
    	protected $id;
    	protected $nom;
    	protected $prenom;
    }
    ?>

    Ajoutez :

    • Un constructeur__construct
    • les geters et seters pour le nom et prénom
    • Une méthode d'affichage __toString

    Testez

  2. Dérivez la classe précédente en contact en rajoutant un attribut email. Rédéfinissez le constructeur et la méthode d'affichage.
  3. 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.

  4. Ajoutez à la classe 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

    Remarque

    On 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")
  5. Ecrire une page qui affiche en html, en utilisant tout ce qui précéde, la liste des tous les contacts
  6. 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>
  7. Ecrire le script editer.php

retour à la page d'accueil

retour au sommet