我一直生活在摇滚之下,因为我必须是唯一还在使用outdata驱动程序将PHP连接到mongodb的人
http://php.net/manual/en/mongo.installation.php 我知道当我访问该网址时收到此消息
不推荐使用此扩展程序。相反,MongoDB扩展应该是 使用
现在我知道我仍然可以使用它,而且大多数事情都会奏效,但要确保我们与官方司机和司机保持联系。
我需要一些建议,我不理解的事情或者我可能,无论哪种方式看起来像新驱动程序意味着我将不得不将第三方插件更好地称为库和框架
但是我宁愿不使用那里列出的那些,因为我似乎找不到smarty-tpl框架,而我的其他客户都使用
static::$_db = new MongoClient
我不知道我是否可以使用这样的东西?
明确问题 - 如果以上是
new MongoClient
连接字符串,如果是这样,请指出它,因为我在mongodb文件中找不到它,它一直把我带到老mongo驱动程序。进一步提出这个问题:
假设我们选择上面列表中的选项3是正确的功能
new MongoDB\Driver\Manager
注意我一直使用new MongoClient
并调用我使用的数据库
$siteDB = SITEDB;
return static::$_db->$siteDB;
所以这很容易,但我猜测Manager不是数据库,或者只是说这是客户端。
我希望不必改变太多,因为我在我的类中有一个处理数据库连接的函数
public static function db()
{
if (!static::$_db) {
static::$_db = new MongoClient("mongodb://".SITEDBUSERNAME.":".SITEDBPASS."@".SITEDBURL.":27017/".SITEDB);
}
$siteDB = SITEDB;
return static::$_db->$siteDB;
}
答案 0 :(得分:4)
旧版和新版的两个主要区别是:
除非你做了一些不寻常的事情或者真的讨厌默认的库,否则你不需要关心扩展和库之间的分离:只需安装两者,然后继续使用用户友好的功能之前。
manual page on using the PHP library包括以下示例:
<?php
require 'vendor/autoload.php'; // include Composer goodies
$client = new MongoDB\Client("mongodb://localhost:27017");
$collection = $client->demo->beers;
$result = $collection->insertOne( [ 'name' => 'Hinterland', 'brewery' => 'BrewDog' ] );
echo "Inserted with Object ID '{$result->getInsertedId()}'";
因此,唯一的变化就是查找MongoClient
并替换为MongoDB\Client
。
我不清楚Smarty集成的意思(我通常不希望数据存储和模板引擎直接交互),但如果这是第三方插件,你可能会需要查找或编写将\
放在正确位置等的更新版本。