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 对象,所以这些东西似乎可以工作并相互交谈。

我想使用 mongo 而不是 mysql,并且我已经实现了 Doctrine。我不知道 Doctrine 做了什么,我已经通过几次搜索尝试找到如何在 zend 中运行 mongo 命令。这些事实使我得出结论,我不知道自己在做什么。

所以对于我的问题的细节:

  • 据我了解,我应该在某处实例化一个 mongo 对象。如果是这样,我应该把实例化放在zend的哪里?
  • 如果不是,大概我需要 mongo 对象的现有实例来从模型类内部运行各种查找/保存命令,所以如果这是真的,我如何访问现有的 mongo 对象?

感谢您的帮助,同样欢迎澄清问题。

为澄清起见,于 2012 年 13 月 12 日编辑。

有了给定的答案,我似乎走在了正确的轨道上,我可以进一步澄清我需要什么:查看下面链接的Doctrine Documentation,我仍然不清楚应该在哪里进行文档管理器实例化。我本来希望它进入一个更通用的位置,该位置在每个页面加载时运行。此外,我发现的大多数教程似乎都引用了与骨架应用程序不同的文件结构,所以当他们说将某些东西放在某些地方时,我不确定他们的意思。例如,我不断看到对引导文件的引用,但我唯一的引导文件位于测试目录中。

我的问题是:

  • 如果我只是想打印集合中的所有文档,我需要在 indexAction 函数中添加什么代码(当我转到正确的 URL 时它肯定会响应)?
  • 我是否需要在其他地方添加任何其他代码,如果需要,在哪里以及什么代码?
4

2 回答 2

0

有用于 mongoDB 访问的出色模块教义-mongo-odm-module 。只需添加到 composer.json

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

教义文档应该有助于如何使用它。

于 2012-12-10T22:51:03.530 回答
0

这些是不同的位以及它们的作用,自下而上地工作:

mongodb:数据持久化

教义ODM:对象文档映射器。这会将 mongo 文档映射到 php 对象。这意味着您不必担心直接对 mongo 进行任何调用 - 您只需使用普通的旧 php 对象。要使用doctrineODM,您需要定义您的模型类,并掌握使用DocumentManager 的窍门——建议,Doctrine 文档非常好。

学说MongoODMModule :将学说与zf2集成的模块。它的主要作用是允许您使用 zf2 config 样式配置学说,并允许您通过 zf2 ServiceManager 访问 DocumentManager。(我也做了很多其他的事情,但它们是主要的)

zf2 (mvc):让您定义一个接口,以便其他东西(如 Web 客户端)可以操作您的文档。

于 2012-12-11T08:41:18.210 回答