PHP 中的 ORM 和 Active Record 模式?

2021-12-23 00:00:00 design-patterns orm php activerecord

现在有两件事似乎很流行,我想知道使用这样的东西的利弊是什么:http://codeigniter.com/user_guide/database/active_record.html ?

There are two things that seem to be popular nowadays and I was wondering what are the pros and cons of using something like this: http://codeigniter.com/user_guide/database/active_record.html ?

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

Another thing is ORM (Doctrine for instance). What are the benefits of using these?

推荐答案

ActiveRecord 是 ORM 中常见的一种模式.Doctrine 是一个使用 ActiveRecord 风格的 ORM.

ActiveRecord is a pattern common in ORMs. Doctrine is an ORM which uses an ActiveRecord'ish style.

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

Some benefits of using tools like Doctrine:

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

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

Of course, they don't come without disadvantages:

  • Doctrine 很重,所以它比使用直接 SQL 慢
  • ORM 可能很复杂,增加了您必须学习的内容的负担,而且有时对于没有经验的程序员来说可能难以理解

相关文章