Maison >développement back-end >tutoriel php >Comment implémenter la classe d'opération en mode singleton mongoDB en PHP

Comment implémenter la classe d'opération en mode singleton mongoDB en PHP

jacklove
jackloveoriginal
2018-05-22 16:23:131679parcourir

Cet article explique comment implémenter la classe d'opération en mode singleton mongoDB en PHP.

J'ai vu de nombreux cours de mongo et ils ne sont tous pas satisfaisants. Finalement, j’ai découvert qu’il n’était pas nécessaire d’encapsuler la classe moi-même. Les méthodes fournies avec l'extension php mongo sont déjà très pratiques

mais il est d'usage d'encapsuler la partie connexion à la base de données. Enfin, j'ai encapsulé une classe de base de données en mode singleton

Utiliser le mode singleton permet d'éviter de générer plusieurs instances et de gaspiller des ressources

Voici le code encapsulé

class Mongo_db
{
private static $cli; 
/** 
* 不允许初始化 
*/ 
private function __construct() 
{ 
$config = Config::get('config.mongo_config'); 
if(empty($config)){ 
$this->throwError('无法连接数据库!'); 
} 
if (!empty($config["user_name"])) { 
$this->mongo = new MongoClient("mongodb://{$config['user_name']}:{$config['password']}@{$config['host']}:{$config['port']}");
}else { 
$this->mongo = new MongoClient($config['host'] . ':' . $config['port']); 
} 
} 
/** 
* 单例模式
* @return Mongo|null 
*/
public static function cli(){ 
if(!(self::$cli instanceof self)){ 
self::$cli = new self(); 
}
return self::$cli->mongo; 
} 
}
$mongo = Mongo_db::cli()->test->mycollection; // test 是选择的数据库 , mycollection

Cet article explique comment implémenter la classe d'opération en mode singleton mongoDB en PHP Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois.

Recommandations associées :

Développement PHP WeChat : WeChat enregistre la conversion temporaire en stockage permanent

php créé à l'aide de imagecopymerge( ) fonction Méthode de filigrane semi-transparent

Discussion : Comment modifier les vues du thème via un simple fichier php ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn