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 相关文章推荐
c#中的实现php中的preg_replace
Dec 21 PHP
phpmyadmin里面导入sql语句格式的大量数据的方法
Jun 05 PHP
PHP中的MYSQL常用函数(php下操作数据库必备)
Sep 12 PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 PHP
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
May 09 PHP
php递归方法实现无限分类实例代码
Feb 28 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
Mar 24 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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模板中出现空行解决方法
2011/03/08 PHP
解析数组非数字键名引号的必要性
2013/08/09 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
javascript静态的url如何传递
2007/05/03 Javascript
用JS操作FRAME中的IFRAME及其内容的实现代码
2008/07/26 Javascript
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
javascript闭包入门示例
2014/04/30 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
AngularJs实现聊天列表实时刷新功能
2017/06/15 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
js实现随机抽奖
2020/03/19 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
python读文件逐行处理的示例代码分享
2013/12/27 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
Python for i in range ()用法详解
2020/09/18 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
个人简历的自荐信
2013/10/23 职场文书
家长会邀请书
2014/01/25 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
高一地理教学工作总结
2015/08/12 职场文书
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers