2018-10-26 16:20:52 1298瀏覽
前兩天有小伙伴通過扣丁學堂官網(wǎng)向老師咨詢php開發(fā)方面的問題,小編整理了一個php技術方面的問題分享給大家,對php開發(fā)感興趣或者是想要參加扣丁學堂php培訓學習的小伙伴們就隨小編來了解一下php如何實現(xiàn)mongoDB單例模式操作類吧。
本文實例講述了php實現(xiàn)的mongoDB單例模式操作類,分享給大家供大家參考,具體如下:
關于php實現(xiàn)的mongoDB單例模式操作類,相信有不少的小伙伴應該已經(jīng)看了好多mongo類都不盡人意吧。最后發(fā)現(xiàn)根本不需要自己封裝類。php mongo 的擴展自帶的方法就已經(jīng)很方便了,但是習慣性的把數(shù)據(jù)庫連接部分封裝起來。
最后就封裝了一個單例模式的數(shù)據(jù)庫類,使用單例模式是為了避免生成多個實例,浪費資源。
下面是封裝的代碼:
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 是選擇的表。
想要了解更多關于php和人工智能方面內容的小伙伴,請關注扣丁學堂php培訓官網(wǎng)、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權威的php開發(fā)環(huán)境搭建視頻,php培訓后的前景無限,行業(yè)薪資和未來的發(fā)展會越來越好的,扣丁學堂老師精心推出的php視頻直播課定能讓你快速掌握php從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂PHP技術交流群:374332265。
【關注微信公眾號獲取更多學習資料】