/** * Cette méthode retourne un objet DatabaseInterface (Couche d'abstraction de connexion à la base de données) * * @param String $connection_name nom de la connexion à la base de données défini dans le fichier database.conf.php * @return DatabaseInterface */ public function getConnexion($connection_name){ global $_CONST; $pool = $_CONST["CONNECTION"][$connection_name]["POOL"]; $dbname = $_CONST["CONNECTION"][$connection_name]["DB_NAME"]; $critical = isset($_CONST["POOL"][$_CONST["CONNECTION"][$connection_name]["POOL"]]["CRITICAL"]) ? $_CONST["POOL"][$_CONST["CONNECTION"][$connection_name]["POOL"]]["CRITICAL"] : false; $force_encoding = (isset($_CONST["POOL"][$_CONST["CONNECTION"][$connection_name]["POOL"]]["FORCE_ENCODING"]) && $_CONST["POOL"][$_CONST["CONNECTION"][$connection_name]["POOL"]]["FORCE_ENCODING"]!='') ? $_CONST["POOL"][$_CONST["CONNECTION"][$connection_name]["POOL"]]["FORCE_ENCODING"] : false; if($pool != "" & $dbname != ""){ // Classe Factory de création de l'objet de connection à la base de données require_once("DatabaseFactory.class.php"); try{ if (!isset($this->connexions[$pool])){ // Création de la connection au pool et à la base de données $this->connexions[$pool] = DatabaseFactory::createConnexion($pool,$dbname); } else { $this->connexions[$pool]->selectDB($dbname); $this->connexions[$pool]->data = null; } } catch (DataBaseException $e) { // Il ne faut pas bloquer l'internaute si la connexion n'est pas critique if($critical==true) { //include("/indispo.tpl.php"); echo "Connexion BDD impossible.<br/>".$e->getMessage()."\n<!-- ";print_r($e);echo ' -->'; exit; } $this->connexions[$pool] = null; } }else{ echo "IMPOSSIBLE DE CREER UNE CONNECTION SUR LA BASE DE DONNEES : ".$pool." / ".$dbname." / ".$connection_name; die(); } return $this->connexions[$pool]; }