You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
<?php
|
|
// TODO: il faut cacher les erreurs de connexions à la base !!!
|
|
/**
|
|
* 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;
|
|
}
|
|
}
|
|
?>
|