wamp PHP扩展 Mongo 与 MongoDB
在选择Mongo扩展的时候,官方提供了两种:
第一种:https://pecl.php.net/package/...
第二种:https://pecl.php.net/package/...
在第二种的界面上,官方提示:This package has been superseded, but is still maintained for bugs and security fixes。
大意就是说,这个包已经被取代了,但仍然保持漏洞和安全补丁,至于维护到什么时候,具体没说。
很显然,替代它的就是 第一种。
那么这两种扩展有什么不同?
链接方式不同
//第一种 安装的扩展名:mongo$mongoUrl = "mongodb://127.0.0.1:27017/user_info"; $mongoClient = new MongoClient($mongoUrl); $mongoDB = $mongoClient->user_info; $collections = $mongoDB->listCollections();foreach ($collections as $collection) { var_dump($collection); }
//第二种 安装的扩展名:mongodb//利用 composer 进行安装(安装方式见末尾)//composer require mongodb/mongodbrequire 'vendor/autoload.php'; //include Composer's autoloader$mongoUrl = "mongodb://127.0.0.1:27017/user_info"; $mongoClient = new MongoDB\Client($mongoUrl); $mongoDB = $mongoClient->user_info; $collections = $mongoDB->listCollections();foreach ($collections as $collection) { var_dump($collection); }
发布时间不同
mongo 1.6.14(最新版) 2016-04-26 发布。
mongodb 1.2.6(最新版) 2017-03-07 发布。
至于,mongo 什么时间停止维护,还没有具体的答案。
其他不同
可能在具体的使用过程中,才能区分开来。
据说,两个扩展提供的类和接口完全不一样。
大家去探索吧~
建议
PHP版本为5.x建议使用 mongo
扩展。
PHP版本为7 建议使用 mongodb
扩展。
当然,PHP5.x 也可以使用 mongodb 扩展。
但是,php7 不可以使用 mongo 扩展。
扩展一般会区分non thread safe (非线程安全)和thread safe(线程安全)区别就在于,非线程安全一般搭配IIS环境使用,线程安全搭配apache使用。当然除此之外php还有 VC6 VC9版本区分VC6和VC9一个支持apache一个支持IIS,VC9 用在apache上也没问题。
找到你的php.ini编辑这个文件,添加
extension=php_mongo.dll
添加到这个文件目的是为了告诉PHP我们安装了这么一个扩展下次启动的时候要启动这个扩展。
3.让mongodb的扩展找到libsasl.dll依赖库
libsasl.dll是在php根目录下的一个文件夹,本文的mongodb需要依赖这个dll。由于wamp安装的过程当中不会添加php的环境变量,所以我们在使用php的mongodb扩展的时候,扩展无法找到libsasl.dll的位置导致mongodb的扩展是无法使用的。
我们需要把php的目录路径添加到我们的系统环境变量里面。
4.测试mongodb扩展安装是否成功
最后我们重启所有的wamp服务,最好把wamp关闭再重新打开。启动wamp的localhost网页,找到phpinfo()
出现mongo的字样就对了,说明mongodb安装成功了。