【问题标题】:Which PHP ORM works best with Zend Framework?哪种 PHP ORM 最适合 Zend 框架?
【发布时间】:2011-06-28 02:47:09
【问题描述】:

好吧,seeing as I'm dissatisfied with Zend_Db_Table after being spoiled by LINQ,我正在寻找开始学习 PHP 的 ORM。 General consensus 似乎是 DoctrinePropel 是唯一值得认真使用的好东西——不管我的意见是什么,我想使用至少适度流行的东西,以便将来的人们可以看看这个我正在开发的应用程序没有爆炸:P

我目前倾向于 Propel,因为它的文档似乎更完整,并且它支持开箱即用的嵌套集合模型(也称为“修改的预排序树横向模型”)。不过,我喜欢 Doctrine 对命名空间和其他 PHP 5.3 特性的使用,而且它似乎更受欢迎一些。

来自那些使用过 Zend 框架的 ORM 的人,哪个与现有框架更好地结合(如果有的话)?在 Zend 中使用任一框架时我应该注意哪些问题?

【问题讨论】:

    标签: php zend-framework orm


    【解决方案1】:

    我不能代表 Propel,但 ZF 和 Doctrine 有很多很好的集成资源。见Zend Framework 1.11 with Doctrine 2 Integration

    【讨论】:

    • +1。同样从我在 SO 的观察来看,Doctrine + ZF 的组合似乎比 Propel + ZF 更受欢迎。
    • 据我回忆,Zend 正在 ZF2 中放弃 ZendDB,转而使用 Doctrine
    • @Phil + @Marcin:您认为这是 Doctrine 特别与 ZF 合作得更好的结果,还是 Doctrine 总体上更受欢迎的事实?似乎人们对 Propel 抱怨的大部分问题都在 1.5 中得到了修复,而且它肯定比 Doctrine 简单得多——但确实存在代码生成步骤的缺点。
    • @Billy 我感觉 ZF 和 Symfony / Doctrine 的人经常闲逛(至少在虚拟空间中)。如果 Doctrine 更受欢迎,也许真正的问题是“为什么?”
    【解决方案2】:

    Well Doctrine 1.2 支持嵌套集...比

    总的来说,我更喜欢 Propel...我更喜欢生成的类而不是在运行时动态配置的类。另外请记住,Propel 是一个主动记录实现,而 Doctrine 2 使用 Data Mapper 模式。

    【讨论】:

    • Doctrine 2 似乎不支持嵌套集 -> doctrine-project.org/docs/orm/2.0/en/reference/…
    • @Billy ONeal:确实如此,只是不是开箱即用的。您链接的页面为 Doctrine 2 提供了两个嵌套集实现。
    • 我喜欢 Doctrine2 正是因为它是 DataMapper-ish。我发现 ActiveRecord——甚至是像 Doctrine1 这样的伟大的——对我来说很有趣,太接近 Zend_Db_Table。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多