PHP中的ORM和Active Record模式?

时间:2009-07-11 13:27:11

标签: php design-patterns activerecord orm

现在有两件事似乎很受欢迎,我想知道使用这样的东西的优点和缺点:http://codeigniter.com/user_guide/database/active_record.html

另一件事是ORM(例如Doctrine)。使用这些有什么好处?

3 个答案:

答案 0 :(得分:19)

ActiveRecord是ORM中常见的模式。 Doctrine是一个使用ActiveRecord'ish风格的ORM。

使用Doctrine等工具的一些好处:

  • 数据库独立性:代码应该易于移植到不同的DB。例如,我经常使用SQLite进行测试,并在生产中使用MySQL或Postgre而不改变代码。
  • 它们减少了您必须编写的代码量:很大一部分应用程序代码处理与数据库的通信。 ORM负责大部分工作,因此您可以集中精力编写实际的应用程序。

当然,他们并非没有缺点:

  • Doctrine很重,所以它比使用直接SQL
  • ORM可能很复杂,给你需要学习的内容增加了一些重量,对于没有经验的程序员来说,它们有时很难理解

答案 1 :(得分:6)

你可以看一下这些问题,虽然它们并不完全是PHP特定的:

答案 2 :(得分:2)

我试着保持它的重量轻且可以理解。甚至还附带了它自己的基于Mootools的类生成器:)

http://www.schizofreend.nl/Pork.dbObject/

检查出来:))