ZendFramework2 与MongoDB的整合
从网上找了很多文章,先是直接搜关键字找zf2与mongoDB的文章,然后回到源头先学习了一下mongoDB是什么,以及纯PHP环境下怎么用,又从github上找了几个mongoDB的zf2模块,还翻墙找了不少东西,再经过调试终于有了成果。下面是我的具体步骤:
1、先从官网下载mongoDB,选择和操作系统对应的版本,下载的是个zip文件,解压后,找到里面的bin文件夹,把所有文件复制到f:\tools\mongodb里,新建data文件夹,
这是文件目录
2、因为我的php版本是5.4以上的,php扩展文件下里已经存在php_mongo.dll,因此只需修改php.ini,去掉 ;extension=php_mongo.dll 前面的 ; 然后重启就可以了,如果没有这个dll,从https://s3.amazonaws.com/drivers.mongodb.org/php/index.html下载最新的就行了。通过phpinfo()函数查看是否出现mongoDb
3、打开cmd命令窗口,cd到上述目录,使用命令
回车后加载很多信息,在浏览器中输入地址“http://localhost:27017/”,若出现如下所示提示则安装成功
需要注意的是这个命令窗口不要关,否则就访问不到了,然后可以参考这个地址学习一下mengoDB的php用法
4、从https://github.com/phly/PhlyMongo上下载全部代码,加压后把PhlyMongo-master文件夹复制到项目的vendor下,这是文件目录
5、找到config\application.config.php,把‘Phlymongo’加入到modules中,如图所示,注意‘PhlyMongo’一定要放在你要引用mongoDB的模块的前面,我就是因为这个问题耽误了半小时,在这里我要在Book模块中使用,所以放在了它的前面
5、打开Applicaiton模块下的config\module.config.php,把下面一段代码复制到里面
- 'mongo'=>array(
- 'server' => 'mongodb://localhost:27017',
- 'server_options' => array('connect' => true)
- )
如图所示
6、在你要引用mongoDB的模块中,比如我要在Book模块中使用mongoDB,则找到Book\module.php,把这一段代码假如里面
- use PhlyMongo\MongoConnectionFactory;
- public function getServiceConfig(){
- return array(
- 'factories' => array(
- 'Book\Mongo' => function ($services) {
- $config = $services->get('config');
- $config = $config['mongo'];
- $factory = new MongoConnectionFactory($config['server'], $config['server_options']);
- return $factory->createService($services);
- }));
- }
7、然后在controller里就可以调用了,我是这样引用的,
- protected $mongoTable;
- protected $_result;
- public function demoAction() {
- $result = $this->_result;
- try {
- $connection=$this->getMongoConnection();
- $database=$connection->selectDB("myblogsite");//这是事先创建的一个database
- $collection=$database->selectCollection("articles");//这是事先创建的一个collection
- $cursor=$collection->find();
- while ($cursor->hasNext()){
- $article = $cursor->getNext();
- }
- print_r($article);
- $connection->close();
- exit();
- } catch (\Exception $e) {
- $result['msg'] = $e->getMessage();
- }
- }
- public function getMongoConnection(){
- if (! $this->mongoConnection) {
- $sm = $this->getServiceLocator();
- $this->mongoConnection= $sm->get('Book\Mongo');
- }
- return $this->mongoConnection;
- }
8、最后输出结果如下,里面的数据是我原先insert的
ZendFramework2 与MongoDB的整合的更多相关文章
- java操作mongodb & springboot整合mongodb
简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...
- 实例讲解Springboot整合MongoDB进行CRUD操作的两种方式
1 简介 Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库.两者在分布式.微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合Mon ...
- Spring Boot WebFlux-03——WebFlux 整合 MongoDB
第03课:WebFlux 整合 MongoDB 前言 上一课的内容讲解了用 Map 数据结构内存式存储了数据,这样数据就不会持久化,本文我们用 MongoDB 来实现 WebFlux 对数据源的操作. ...
- MongoDB简单操作
Hadoop核心技术厂商Cloudera将在2014/06推出hadoop Ecosystem与MongoDB的整合产品,届时MongoDB与ipmala及hbase,hive一起用; 开源linux ...
- Spring Boot 2 快速教程:WebFlux 集成 Mongodb(四)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第104篇原创 文章工程:* JDK 1.8* M ...
- Spring Boot WebFlux 集成 Mongodb 数据源操作
WebFlux 整合 Mongodb 前言 上一讲用 Map 数据结构内存式存储了数据.这样数据就不会持久化,本文我们用 MongoDB 来实现 WebFlux 对数据源的操作. 什么是 MongoD ...
- MongoDB,入门看这一篇足矣!
一.介绍 在介绍 MongoDB 之前,我先介绍一下业务开发的时候遇到的痛点,以便大家对它有一个更加清晰的认识! 最近在用数据库存储数据的时候发现这么一个坑,例如从消息队列中监听消息的时候,原来的做法 ...
- MongoDB - 入门指南
组件结构 核心进程 在 MongoDB 中,核心进程主要包含了 mongod.mongos 和 mongosh 三个. 其中最主要的是 mongod 程序,其在不同的部署方案中(单机部署.副本集部署. ...
- Windows Azure -Azure 网站、云服务和虚拟机的对比
Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...
随机推荐
- UVa 11992 (线段树 区间修改) Fast Matrix Operations
比较综合的一道题目. 二维的线段树,支持区间的add和set操作,然后询问子矩阵的sum,min,max 写完这道题也是醉醉哒,代码仓库里还有一份代码就是在query的过程中也pushdown向下传递 ...
- UVa 1648 (推公式) Business Center
题意: 有一种奇怪的电梯,每次只能向上走u个楼层或者向下走d个楼层 现在有m个这种电梯,求恰好n次能够到达的最小楼层数(必须是正数),最开始默认位于第0层. 分析: 假设电梯向上走x次,则向下走n-x ...
- LA 2572 (求可见圆盘的数量) Kanazawa
题意: 把n个圆盘依次放到桌面上,按照放置的先后顺序给出这n个圆盘的圆心和半径,输出有多少个圆盘可见(即未被全部覆盖). 分析: 题中说对输入数据进行微小扰动后答案不变. 所露出的部分都是由若干小圆弧 ...
- 从MySpace基于.NET平台的六次重构经历感受分布式
它们拥有的用户和fans之多,大家都很清楚. Myspace是一个基于.NET平台的,而Facebook更多是基于LAMP的.我们来看看MySpace配合.NET+Windows Server 200 ...
- 纯css3写的仿真图书翻页效果
对css3研究越深入,越觉得惊艳.css3说不上是万能的,但是它能实现的效果也超出了我的想象.它的高效率和动画效果的流畅性很多情况下能替代js的作用.个人习惯css3能实现的效果就不会用js,虽然在国 ...
- $('div','li')
要搞清楚$('div','li') 和 $('div , li') 和 $('div li') 区别$('div','li')是$(子,父),是从父节点里找子,而不是找li外面的div $('div ...
- 【LCS,LIS】最长公共子序列、单调递增最长子序列
单调递增最长子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 求一个字符串的最长递增子序列的长度如:dabdbf最长递增子序列就是abdf,长度为4 输入 ...
- Oracle RAC 客户端连接负载均衡(Load Balance)
实现负载均衡(Load Balance)是Oracle RAC最重要的特性之一,主要是把负载平均分配到集群中的各个节点,以提高系统的整体吞吐能力.通常情况下有两种方式来实现负载均衡,一个是基于客户端连 ...
- CSS HACK区别IE6、IE7、IE8、Firefox兼容性
相信不少人,都特别清楚CSS HACK,而其中也是区别IE6.IE7.IE8.Firefox兼容性问题用的,CSS hack由于不同的浏览器,对CSS的解析认识不一样,因此会导致生成的页面效果不一样. ...
- hdu 3038 How Many Answers Are Wrong(种类并查集)2009 Multi-University Training Contest 13
了解了种类并查集,同时还知道了一个小技巧,这道题就比较容易了. 其实这是我碰到的第一道种类并查集,实在不会,只好看着别人的代码写.最后半懂不懂的写完了.然后又和别人的代码进行比较,还是不懂,但还是交了 ...