2012-12-10 62 views
2

我試圖將Zend與MongoDB集成。我想我快到了,但我需要一些幫助才能完成任務。我對zend和mongo都很陌生,但對PHP和MySQL有相當的經驗。Zend MongoDB實現

一些細節:

我的Zend項目是基於在http://framework.zend.com/manual/2.0/en/user-guide/skeleton-application.html骨架教程。這在我的電腦上正常工作,但是是基於mysql的。

我已經安裝了MongoDB。我可以在命令行上編寫nosql,並且可以在PHP腳本中實例化一個MongoClient對象,所以這些東西似乎可以正常工作並相互交流。

我想用mongo代替mysql,並且我實現了Doctrine。我不知道Doctrine是做什麼的,我已經通過幾次搜索嘗試找到如何在zend中運行mongo命令。這些事實導致我得出結論,我不知道我在做什麼。

所以我的問題的細節:

  • 據我瞭解,我應該在某個地方實例化一個蒙戈對象。如果是這樣,我應該在zend中將實例化到哪裏?
  • 如果沒有,想必我需要蒙戈對象的現有實例運行各種查找/從模型類中保存命令,因此,如果這是真的,我怎麼訪問現有的蒙戈對象?

感謝您的幫助和澄清問題同樣歡迎。

編輯13/12/2012澄清。

在給定的答案似乎我在正確的軌道上,我可以進一步澄清什麼,我需要: 看下面鏈接的Doctrine Documentation,我還不清楚其中的文檔管理器實例應該發生。我本來期望它進入一個更通用的位置,這個位置在每個頁面上運行。另外,我發現的大多數教程似乎都指向不同於骨架應用程序的文件結構,所以當他們說要在某些地方放置某些東西時,我不確定它們的意思。例如,我不斷看到對引導文件的引用,但我的唯一引導文件位於測試目錄中。

我的問題是:

  • 我需要什麼樣的代碼添加到的indexAction函數(當我去到正確的網址肯定響應),如果我只是想print_r的一個集合中的所有文件?
  • 我是否需要在其他地方添加任何其他代碼,如果是的話,以及代碼是什麼?

回答

0

這些都是不同的位,他們做什麼,從下往上工作:

MongoDB的:數據持久性

doctrineODM:目的的文件映射。這將mongo文檔映射到php對象。這意味着您不必擔心直接對mongo進行任何調用 - 您只需使用普通的舊php對象。要使用doctrineODM,您需要定義您的模型類,並獲取使用DocumentManager的建議 - 建議,Doctrine文檔非常好。

doctrineMongoODMModule:將原則與zf2集成的模塊。它所做的主要事情是允許您使用zf2配置樣式配置原則,並允許您通過zf2 ServiceManager訪問DocumentManager。 (我做其他不少東西太多,但他們是主要的)

ZF2(MVC):允許您定義一個接口,這樣其他的東西(如Web客戶端)可以操縱你的文件。

+0

感謝您的解釋。根據我的要求從特定人員那裏聽到這一點很好。這將有助於我稍後改進我的問題。我懷疑我需要知道配置代碼文件應該在哪裏。 – Shoreline

+0

我已經爲我的問題添加了一個編輯來澄清它。 – Shoreline

0

有輝煌的模塊doctrine-mongo-odm-module爲mongoDB訪問。 只需添加到composer.json

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

Doctrine documentation應該幫助如何使用它。

+0

太好了,謝謝你。我做到了,所以我明確地走上了正軌。我更瞭解我需要了解的內容,因此我必須改進我的問題。 – Shoreline