php實(shí)現(xiàn)的mongoDB單例模式操作類
本文實(shí)例講述了php實(shí)現(xiàn)的mongoDB單例模式操作類。分享給大家供大家參考,具體如下:
看了好多mongo類都不盡人意。最后發(fā)現(xiàn)根本不需要自己封裝類。php mongo 的擴(kuò)展自帶的方法就已經(jīng)很方便了
但是習(xí)慣性的把數(shù)據(jù)庫連接部分封裝起來。最后我就封裝了一個單例模式的數(shù)據(jù)庫類
使用單例模式是為了避免生成多個實(shí)例,浪費(fèi)資源
下面是封裝的代碼
class Mongo_db { private static $cli; /** * 不允許初始化 */ private function __construct() { $config = Config::get('config.mongo_config'); if(empty($config)){ $this->throwError('無法連接數(shù)據(jù)庫!'); } 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 是選擇的數(shù)據(jù)庫 , mycollection 是選擇的表。 因?yàn)槭褂脝卫J?,所以,只會?shí)例一個資源具體操作再參考下面的文章吧
這里有個一篇文章,講的php對mongo的操作,很詳細(xì),也很易懂。希望大家參考下
http://www.dbjr.com.cn/article/37727.htm
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHPwind整合最土系統(tǒng)用戶同步登錄實(shí)現(xiàn)方法
我的任務(wù)就是讓PHPWind和最土登錄同步,領(lǐng)導(dǎo)也知道我的技術(shù)能力有限,不怎么高要求,所以讓我先實(shí)現(xiàn),再考慮其他。趕鴨子上架,開工了。2010-12-12Cannot modify header information錯誤解決方法
Warning: Cannot modify header information - headers already sent by出錯的原因2008-10-10如何使用Laravel Eloquent來開發(fā)無限極分類
在網(wǎng)上商城上,我們經(jīng)??梢钥吹蕉嗉壏诸?、子分類、甚至無限極分類。本文將向你展示如何優(yōu)雅的通過 Laravel Eloquent 將其實(shí)現(xiàn)。2021-05-05php使用gearman進(jìn)行任務(wù)分發(fā)操作實(shí)例詳解
這篇文章主要介紹了php使用gearman進(jìn)行任務(wù)分發(fā)操作,結(jié)合實(shí)例形式詳細(xì)分析了gearman的安裝以及PHP使用gearman進(jìn)行異步處理任務(wù)相關(guān)操作技巧,需要的朋友可以參考下2020-02-02