setSlaveOkay已弃用?

时间:2013-03-22 01:47:07

标签: php mongodb

我收到了以下错误消息:

  

不推荐使用:不推荐使用函数Mongo :: setSlaveOkay()

PHP manual中,它说:

  

MongoCollection :: setSlaveOkay

     

(PECL mongo> = 1.1.0)

     

MongoCollection :: setSlaveOkay - 为此改变slaveOkay设置   集合

我无法找到任何有关它被弃用的内容。

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

3 个答案:

答案 0 :(得分: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版本(预定“很快”)中的首选方式做好准备。

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

答案 1 :(得分:2)

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

以下是PHP ReadReferences的介绍:

  

MongoDB 2.2和1.3.0版本的驱动程序添加了对read的支持   首选项,允许控制查询的定向方式   副本集环境中的mongod实例。阅读偏好可能是   在每个连接,每个数据库或每个集合上指定   基础。在更高级别定义的首选项将继承   默认(例如,MongoCollection将继承定义的读取权限   相应的MongoDB实例)。

     

使用模式和标记的组合指定读取首选项   集。模式确定mongod实例的优先级,同时   标记集指定符合条件的mongod实例的条件。

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

HTH - Rob

答案 2 :(得分:0)

此功能的PHP更新日志

1.2.11使用时发出E_DEPRECATED。

因此不推荐使用pecl mongo驱动程序。