PHP 中的 ORM 和 Active Record 模式?
现在有两件事似乎很流行,我想知道使用这样的东西的利弊是什么: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 可能很复杂,增加了您必须学习的内容的负担,而且有时对于没有经验的程序员来说可能难以理解
相关文章