だから私は最近phpコードの大部分を継承しましたが、それは最適とは言えません。主な問題は次のとおりです。
- データベース オブジェクト、コレクション オブジェクトなどを返すなど、Mongo 操作用のラッパー クラスがありますが、ラッパー クラスは実際には多くの場所で使用されていません。
- コードの多くの場所で、ラッパー クラスではなく、非推奨のクラス「mongo」が広範囲に使用されています。
- Mongo クラスターは 1.8 で実行されていますが、アップグレードのオプションではありません。
私のタスクは、レプリケーション クラスターを構成し、スレーブ間で読み取りの負荷を分散することです。「setSlaveOkay(true)」コードをラッパー クラスに入れました。理想的には、これで十分でした。しかし、コード内の非常に多くの場所で「mongo」や他のクラスに直接アクセスすると、正しい slaveOkay がありません。値が設定されます。悪いコードは非常に多くの場所に出現するため、すべてのコードにアクセスして修正するのは困難です。
理想的には、私が探しているのは次のいずれかです。
- すべてのプラットフォームのすべての接続で slaveokay=true が暗示されるようにスレーブ ノードを構成する方法。
- 後続のすべてのオブジェクトが slaveokay=true を持つようにする mongo クラスの静的プロパティまたは関数
ここの人々が「正しい方法」で行われる解決策を提供する傾向が強いことは理解していますが、この場合、「最新のmongoにアップグレードして読み取り設定を使用する」または「ラッパークラスを作成する...」などの提案は役に立ちません。コードを継承し、mongo のインストールを継承しました。既存のプロジェクトを壊さない迅速で汚い修正が必要です...コードに入り、「mongo」クラスの 500 回の呼び出しを変更してラッパーを使用することはオプションではありません。コード - また、チームの他のコーダーがラッパー クラスの回避をやめるという保証はありません。
御時間ありがとうございます。