【发布时间】:2011-06-01 07:31:48
【问题描述】:
与 codeigniter(php 框架)一起使用的最佳 ORM 是什么?为什么?
【问题讨论】:
-
Which ORM for codeigniter? 的可能重复项
标签: php orm codeigniter doctrine doctrine-orm
与 codeigniter(php 框架)一起使用的最佳 ORM 是什么?为什么?
【问题讨论】:
标签: php orm codeigniter doctrine doctrine-orm
正如 DrColossos 所建议的,Doctrine 是一个优秀且强大的 ORM,可以相当容易地插入 CI 应用程序。 对于 CodeIgniter 2 和 Doctrine 2,您可以在 Setting up CodeIgniter 2 with Doctrine 2 the Right Way 上使用本教程。
【讨论】:
这个问题非常模糊,完全取决于用例。
无论如何,我更喜欢Doctrine 而不是内置数据库访问,因为我更喜欢编写查询而不是使用(IMO 奇怪的方式)CI 的数据库访问。这比 CI 实现有更多的 OO 感觉,而且它非常强大,因为它允许您执行与常规 SQL 相同的事情(复杂的连接、子选择、更高级的 WHERE 条件)。
我也更喜欢它,因为您可以跳入查询过程,这意味着您可以在提交查询之前执行操作,提交查询之后,应用规则等等。我还没有在 CI 中以简单的方式看到这一点。
阅读文档中的示例以了解我在说什么。
Doctrine 可以轻松集成到 CI 中(互联网上有很多帖子,甚至在 SO 上也有一些帖子),因此您不必学习任何花哨的新约定。
无论您选择什么,请记住,任何 ORM 都会为非常轻量级的框架增加大量(与 CI 的基本占用空间相比)开销。所以你牺牲了轻量级来换取强大的数据库功能和更多的抽象。
【讨论】:
我更喜欢使用 Active Record。它已经存在了,我还没有遇到过它不能满足我的需求的情况。我没有在 CodeIgniter 之上使用另一个 ORM,但我怀疑它会在大多数情况下添加不必要的层。
您需要做哪些内置 Active Record 工具没有提供的功能?
【讨论】:
我认为你应该只使用活动记录,因为大多数时候我认为使用另一层抽象 (ORM) 可能会付出很大的代价。
【讨论】:
一个选项是 DataMapper ORM:
【讨论】: