什么是最适合与CodeIgniter(PHP框架)一起使用的ORM,为什么?

5
什么是最适合与CodeIgniter(PHP框架)一起使用的ORM,为什么?

可能是CodeIgniter的哪个ORM?的重复问题。 - BoltClock
5个回答

4

1

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

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

使用Doctrine集成到CI非常容易(互联网上有很多帖子,甚至在SO上也有一些),所以您不必学习任何花哨的新约定。

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


1

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

你需要做什么,内置的Active Record工具无法提供?


3
Active Record 只是一种模式,ORM 工具支持这种模式,但还添加了更多功能(例如在类中配置表)。CI 的标准 Active Record 类只提供基本接口。 - thomaux

0

1
那个名字有误导性,它实现的不是DataMapper模式而是ActiveRecord模式。 - beberlei

0

我认为你应该只使用Active Record,因为大多数情况下,使用另一层抽象(ORM)可能会付出很大的代价。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接