php实现的mongoDB单例模式操作类


Posted in PHP onJanuary 20, 2018

本文实例讲述了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的操作,很详细,也很易懂。希望大家参考下
https://3water.com/article/37727.htm

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
phpwind中的数据库操作类
Jan 02 PHP
php include,include_once,require,require_once
Sep 05 PHP
FleaPHP的安全设置方法
Sep 15 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
php连接oracle数据库及查询数据的方法
Dec 29 PHP
PHP中生成UUID自定义函数分享
Jun 10 PHP
PHP代码优化技巧小结
Sep 29 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
再谈PHP中单双引号的区别详解
Jun 12 PHP
PHP读MYSQL中文乱码的快速解决方法
Oct 01 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
PHP实现合并两个排序链表的方法
Jan 19 #PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 #PHP
php通过header发送自定义数据方法
Jan 18 #PHP
PHP实现从上往下打印二叉树的方法
Jan 18 #PHP
PHP获取链表中倒数第K个节点的方法
Jan 18 #PHP
PHP获取二叉树镜像的方法
Jan 17 #PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
You might like
PHP 图像尺寸调整代码
2010/05/26 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
php判断文件上传图片格式的实例详解
2017/09/30 PHP
javascript 判断中文字符长度的函数代码
2012/08/27 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JavaScript用select实现日期控件
2015/07/17 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
js实现拖拽功能
2017/03/01 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
WebGL three.js学习笔记之阴影与实现物体的动画效果
2019/04/25 Javascript
详解package.json版本号规则
2019/08/01 Javascript
vue 解决数组赋值无法渲染在页面的问题
2019/10/28 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
python库skimage给灰度图像染色的方法示例
2020/04/27 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
结构和类有什么异同
2012/07/16 面试题
优秀学生干部个人的自我评价
2013/10/04 职场文书
大学生年度自我鉴定
2013/10/31 职场文书
森林防火工作方案
2014/02/14 职场文书
任命书范本大全
2014/06/06 职场文书
科技节口号
2014/06/19 职场文书
个人典型事迹材料
2014/12/30 职场文书
李强感恩观后感
2015/06/17 职场文书
文明上网主题班会
2015/08/14 职场文书
商务信函英语问候语
2015/11/10 职场文书
护士岗前培训心得体会
2016/01/08 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
Ubuntu安装Mysql+启用远程连接的完整过程
2022/06/21 Servers