1,9 → 1,22 |
<?php |
// declare(encoding='UTF-8'); |
/** |
* Classe modèle, donc d'accès au données, elle ne devrait pas être appelée de l'extérieur. |
* Elle fait office d'abstraction légère de base de données en utilisant les objects PDO natifs |
* Classe modèle, donc d'accés au données, elle ne devrait pas être appelée de l'extérieur. |
* Elle fait office d'abstraction légère de base de données en utilisant les objects PDO natifs |
* de PHP |
* Elle est abstraite donc doit obligatoirement être étendue. |
* Elle est abstraite donc doit obligatoirement être étendue. |
* |
* PHP Version 5 |
* |
* @category Class |
* @package Framework |
* @author aurelien <aurelien@tela-botanica.org> |
* @copyright 2009 Tela-Botanica |
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL |
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL |
* @version SVN: $$Id$$ |
* @link /doc/framework/ |
* |
*/ |
abstract class Modele { |
|
43,16 → 56,21 |
* Mot de passe |
*/ |
private $pass; |
|
/** |
* Connexion à la base de données |
* Encodage de la base de données |
*/ |
private $encodage = null; |
/** |
* Connexion à la base de données |
*/ |
private $connexion = null; |
|
/** |
* Constructeur par défaut, appelé à l'initialisation. |
* Constructeur par défaut, appelé à l'initialisation. |
*/ |
final public function __construct() { |
// les différents paramètres nécessaires sont lus à partir du registre |
// les différents paramètres nécessaires sont lus à partir du registre |
$this->registre = Registre::getInstance(); |
$this->gestionnaire_erreur = GestionnaireErreur::getInstance(); |
$this->type = Config::get('bdd_protocole'); |
60,6 → 78,7 |
$this->bdd_nom = Config::get('bdd_nom'); |
$this->utilisateur = Config::get('bdd_utilisateur'); |
$this->pass = Config::get('bdd_mot_de_passe'); |
$this->encodage = Config::get('bdd_encodage'); |
|
$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote; |
} |
79,16 → 98,19 |
} |
|
/** |
* Connection à la base de données en utilisant les informations fournies par |
* Connection à 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. |
* 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 |
* @throws PDOException une exception dans le cas ou là connexion échoue |
*/ |
final private function connecter() { |
// TODO: retirer le try catch et laisser le problème au gestionnaire d'exceptions |
// TODO: retirer le try catch et laisser le problème au gestionnaire d'exceptions |
try { |
$this->connexion = new PDO($this->dsn, $this->utilisateur, $this->pass); |
if($this->encodage != null) { |
$this->requete("SET names '".$this->encodage."'"); |
} |
} catch (PDOException $e) { |
|
} |