3

次のエラー メッセージが表示されました。

非推奨: 関数 Mongo::setSlaveOkay() は非推奨です

PHPマニュアルでは、次のように述べています。

MongoCollection::setSlaveOK

(PECLモンゴ>=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 人が次のように述べています。

推奨される方法 [...] が次の 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 に答える