2

Zend と MongoDB を統合しようとしています。もうすぐそこに着くと思いますが、タスクを完了するには助けが必要です。私は zend と mongo の両方を初めて使用しますが、PHP と MySQL についてはある程度の経験があります。

いくつかの詳細:

私の Zend プロジェクトは、 http://framework.zend.com/manual/2.0/en/user-guide/skeleton-application.htmlのスケルトン チュートリアルに基づいています。これは私のコンピューターでは問題なく動作しますが、mysql ベースです。

MongoDB をインストールしました。コマンド ラインで nosql を記述でき、PHP スクリプトで MongoClient オブジェクトをインスタンス化できるため、これらが機能し、相互に通信しているように見えます。

mysql の代わりに mongo を使用したいので、Doctrine を実装しました。私はDoctrineが何をするのか分かりません.Zendでmongoコマンドを実行する方法を見つけるためにいくつかの検索を行ってきました. これらの事実から、私は自分が何をしているのかわからないという結論に達しました。

だから私の質問の詳細に:

  • 私が理解しているように、どこかでmongoオブジェクトをインスタンス化する必要があります。もしそうなら、インスタンス化を zend のどこに置くべきですか?
  • そうでない場合は、モデル クラス内からさまざまな検索/保存コマンドを実行するために、おそらく mongo オブジェクトの既存のインスタンス化が必要です。その場合、既存の mongo オブジェクトにアクセスするにはどうすればよいですか?

ご協力いただきありがとうございます。明確化のための質問も同様に歓迎します。

明確にするために 2012 年 13 月 12 日に編集されました。

与えられた答えで、私は正しい方向に進んでいるようで、必要なものをさらに明確にすることができます:以下にリンクされているDoctrine Documentationを見ると、ドキュメントマネージャーのインスタンス化がどこで発生するのかまだ不明です. ページが読み込まれるたびに実行される、より一般的な場所に移動することを期待していました。また、私が見つけたチュートリアルのほとんどは、スケルトン アプリケーションとは異なるファイル構造を参照しているように見えるため、特定のものを特定の場所に配置するように指示されている場合、その意味がわかりません。たとえば、ブートストラップ ファイルへの参照を何度も目にしますが、私のブートストラップ ファイルはテスト ディレクトリにあるだけです。

私の質問は次のとおりです。

  • コレクション内のすべてのドキュメントを単純に print_r したい場合、indexAction 関数 (正しい URL に移動すると確実に応答する) にどのコードを追加する必要がありますか?
  • 他のコードを他の場所に追加する必要がありますか? その場合、どこに、どのコードを追加しますか?
4

2 に答える 2

0

これらは、さまざまなビットとその機能であり、ボトムアップで機能します。

mongodb : データの永続性

doctrineODM : オブジェクト ドキュメント マッパー。これにより、mongo ドキュメントが php オブジェクトにマップされます。これは、mongo に対して直接呼び出しを行うことを心配する必要がないことを意味します。単純な古い php オブジェクトを操作するだけです。doctrineODM を使用するには、モデル クラスを定義し、DocumentManager を使用するコツをつかむ必要があります。提案されているように、Doctrine のドキュメントは非常に優れています。

doctrineMongoODMModule : doctrine を zf2 と統合するモジュール。主な機能は、zf2 構成スタイルを使用してドクトリンを構成できるようにし、zf2 ServiceManager を介して DocumentManager にアクセスできるようにすることです。(他にも色々やっていますが、主なものです)

zf2 (mvc) : インターフェイスを定義して、他のもの (Web クライアントなど) がドキュメントを操作できるようにします。

于 2012-12-11T08:41:18.210 に答える
0

mongoDB アクセス用の優れたモジュールdoctrine-mongo-odm-moduleがあります。composer.json に追加するだけです

"require": {   
....
"doctrine/doctrine-mongo-odm-module": "dev-master",
....

Doctrine のドキュメントは、それを使用する方法を支援する必要があります。

于 2012-12-10T22:51:03.530 に答える