【问题标题】:What is the best ORM to use with codeigniter (php framework) and why? [closed]与 codeigniter(php 框架)一起使用的最佳 ORM 是什么,为什么? [关闭]
【发布时间】:2011-06-01 07:31:48
【问题描述】:

与 codeigniter(php 框架)一起使用的最佳 ORM 是什么?为什么?

【问题讨论】:

标签: php orm codeigniter doctrine doctrine-orm


【解决方案1】:

正如 DrColossos 所建议的,Doctrine 是一个优秀且强大的 ORM,可以相当容易地插入 CI 应用程序。 对于 CodeIgniter 2 和 Doctrine 2,您可以在 Setting up CodeIgniter 2 with Doctrine 2 the Right Way 上使用本教程。

【讨论】:

    【解决方案2】:

    这个问题非常模糊,完全取决于用例。

    无论如何,我更喜欢Doctrine 而不是内置数据库访问,因为我更喜欢编写查询而不是使用(IMO 奇怪的方式)CI 的数据库访问。这比 CI 实现有更多的 OO 感觉,而且它非常强大,因为它允许您执行与常规 SQL 相同的事情(复杂的连接、子选择、更高级的 WHERE 条件)。
    我也更喜欢它,因为您可以跳入查询过程,这意味着您可以在提交查询之前执行操作,提交查询之后,应用规则等等。我还没有在 CI 中以简单的方式看到这一点。
    阅读文档中的示例以了解我在说什么。

    Doctrine 可以轻松集成到 CI 中(互联网上有很多帖子,甚至在 SO 上也有一些帖子),因此您不必学习任何花哨的新约定。

    无论您选择什么,请记住,任何 ORM 都会为非常轻量级的框架增加大量(与 CI 的基本占用空间相比)开销。所以你牺牲了轻量级来换取强大的数据库功能和更多的抽象。

    【讨论】:

      【解决方案3】:

      我更喜欢使用 Active Record。它已经存在了,我还没有遇到过它不能满足我的需求的情况。我没有在 CodeIgniter 之上使用另一个 ORM,但我怀疑它会在大多数情况下添加不必要的层。

      您需要做哪些内置 Active Record 工具没有提供的功能?

      【讨论】:

      • Active Record 只是一种模式,ORM 工具支持这种模式,但增加了更多(比如在类中配置表)。 CI 的标准 Active Record 类只为您提供了一个基本接口。
      【解决方案4】:

      我认为你应该只使用活动记录,因为大多数时候我认为使用另一层抽象 (ORM) 可能会付出很大的代价。

      【讨论】:

        【解决方案5】:

        一个选项是 DataMapper ORM:

        http://datamapper.exitecms.org/

        【讨论】:

        • 这个名字有误导性,它不是 DataMapper 模式,它实现了 ActiveRecord 模式。
        猜你喜欢
        • 2010-09-18
        • 2011-05-17
        • 2011-03-11
        • 1970-01-01
        • 1970-01-01
        • 2022-06-16
        • 1970-01-01
        • 2020-11-11
        • 2012-01-15
        相关资源
        最近更新 更多