Rev 2052 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpabstract class Modele {private $registre;private $gestionnaire_erreur;private $dsn;private $type;private $hote;private $bdd_nom;private $utilisateur;private $pass ;private $connexion = null;/*** Constructeur par défaut, appelé à l'initialisation*/final public function __construct() {$this->registre = Registre::getInstance() ;$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ;$this->type = $this->registre->get('bdd_type');$this->hote = $this->registre->get('bdd_hote');$this->bdd_nom = $this->registre->get('bdd_nom');$this->utilisateur = $this->registre->get('bdd_utilisateur');$this->pass = $this->registre->get('bdd_pass');$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote;}/*** Fonction qui appelle la bonne fonction de requete suivant le type de bdd* @param string la requete à effectuer* @return PDOStatement un objet contenant le résultat de la requête*/final protected function requete($requete) {// on ne se connecte que lors du premier appel à une requeteif($this->connexion == null) {$this->connecter();}return $this->connexion->query($requete);}/*** Connecte à la base de données en utilisant les informations fournies par* le fichier de configuration, private et final car n'a pas vocation a être appelée* par l'utilisateur* @throws PDOException une exception dans le cas ou là connexion échoue*/final private function connecter() {try {$this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass);} catch (PDOException $e) {}}final protected function proteger($chaine) {// on ne se connecte que lors du premier appel à une requeteif($this->connexion == null) {$this->connecter();}return $this->connexion->quote($chaine);}/*** Destructeur de classe, se contente de fermer explicitement la connexion*/final public function __destruct() {if($this->connexion != null) {$this->connexion = null ;}}}?>