|
|
|
@ -0,0 +1,59 @@ |
|
|
|
<?php |
|
|
|
/** |
|
|
|
* Singleton permettant de gerer les connexions a la BDD Mongo. |
|
|
|
*/ |
|
|
|
class DbMongo |
|
|
|
{ |
|
|
|
/** |
|
|
|
* Contient l'instance unique de Db. |
|
|
|
* |
|
|
|
* @var Db |
|
|
|
*/ |
|
|
|
private static $_instance; |
|
|
|
/** |
|
|
|
* Contient la connexion pre-creer a la base. |
|
|
|
* |
|
|
|
* @var MongoDb |
|
|
|
*/ |
|
|
|
private $_db; |
|
|
|
|
|
|
|
/** |
|
|
|
* Empeche la création externe d'instances. |
|
|
|
*/ |
|
|
|
private function __construct() |
|
|
|
{ |
|
|
|
$conn = new MongoClient('mongodb://'.DB_RWUSER.':'.DB_RWPASS.'@'.DB_SERVER.'/'.DB_COLL); |
|
|
|
/* |
|
|
|
* C'est moche, mais si l'on met DB_COLL directement a la ligne suivante, |
|
|
|
* PHP essaye d'acceder a la db $conn->DB_COLL. |
|
|
|
*/ |
|
|
|
$tmp = DB_COLL; |
|
|
|
$this->_db = $conn->$tmp; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Renvoi de l'instance et initialisation si nécessaire. |
|
|
|
* private car pas de raison de vouloir l'instance. |
|
|
|
* |
|
|
|
* @return Db instance unique de Db |
|
|
|
*/ |
|
|
|
private static function _getInstance() |
|
|
|
{ |
|
|
|
if (!(self::$_instance instanceof self)) { |
|
|
|
self::$_instance = new self(); |
|
|
|
} |
|
|
|
|
|
|
|
return self::$_instance; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Retourne un objet PDO representant la connexion. |
|
|
|
* |
|
|
|
* @return PDO instance unique de PDO lie a la base de donnees |
|
|
|
*/ |
|
|
|
public static function get() |
|
|
|
{ |
|
|
|
return self::_getInstance()->_db; |
|
|
|
} |
|
|
|
} |
|
|
|
?>
|