本文實例講述了php實現的mongoDB單例模式操作類。分享給大家供大家參考,具體如下:
看了好多mongo類都不盡人意。最后發現根本不需要自己封裝類。php mongo 的擴展自帶的方法就已經很方便了
但是習慣性的把數據庫連接部分封裝起來。最后我就封裝了一個單例模式的數據庫類
使用單例模式是為了避免生成多個實例,浪費資源
下面是封裝的代碼
- 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 是選擇的表。 因為使用單例模式,所以,只會實例一個資源具體操作再參考下面的文章吧
這里有個一篇文章,講的php對mongo的操作,很詳細,也很易懂。希望大家參考下
http://www.zmynmublwnt.cn/article/22347.html
希望本文所述對大家PHP程序設計有所幫助。