3

我收到此错误消息:

已弃用:函数 Mongo::setSlaveOkay() 已弃用

PHP 手册中,它说:

MongoCollection::setSlaveOkay

(PECL mongo >=1.1.0)

MongoCollection::setSlaveOkay — 更改此集合的 slaveOkay 设置

我找不到任何关于它被弃用的信息。

我的 PHP 版本是 5.3.10,MongoDB 版本是 1.3.5。

4

3 回答 3

3

由于其他答案状态setSlaveOkay已被弃用,有利于完整的阅读偏好(http://derickrethans.nl/readpreferences.html)。MongoClient这是引入课程时所做的更改( http://derickrethans.nl/mongoclient.html)。

如果您查看 PHP 手册页 ( http://www.php.net/manual/en/mongocollection.setslaveokay.php ) 的底部,您将看到一个更改日志部分,其中提到:

使用时发出 E_DEPRECATED。

下面的“另见”部分提供了替代它的链接,阅读首选项。

作为维护者之一的备份 Hannes ( https://groups.google.com/forum/?fromgroups=#!topic/mongodb-user/CAWuND9niLo ) 提到:

我们想让人们做好准备,[...] 将在即将到来的 1.3.0 版本(计划“很快”)中改变。

所以是的,从现在开始你应该使用阅读偏好。

于 2013-03-22T08:03:21.817 回答
2

'slaveOk' 已被更可配置的 ReadPreferences 功能所取代。

下面是 PHP ReadReferences 的介绍:

驱动程序的 MongoDB 2.2 和 1.3.0 版本添加了对读取首选项的支持,这允许控制如何将查询定向到副本集环境中的 mongod 实例。可以在每个连接、每个数据库或每个集合的基础上指定读取首选项。默认情况下,将继承在更高级别定义的首选项(例如,MongoCollection 将继承在相应 MongoDB 实例上定义的读取首选项)。

读取首选项由模式和标签集的组合指定。模式决定了 mongod 实例的优先级,而标签集指定了符合条件的 mongod 实例的标准。

http://php.net/manual/en/mongo.readpreferences.php

HTH - 罗伯

于 2013-03-22T02:54:26.763 回答
0

此函数的 PHP 更改日志

1.2.11 使用时发出 E_DEPRECATED。

所以它不推荐用于 pecl mongo 驱动程序。

于 2013-03-22T01:50:01.013 回答