我正在使用提供ORM和DBAL的Doctrine。
他们之间有什么区别?
如何决定何时使用哪个?
答案 0 :(得分:31)
DBAL(数据库抽象层)是一个简化与SQL数据库交互的软件,允许您使用它们而不必担心不同DBMS供应商的特定方言或差异。它基本上允许您针对DBMS运行SQL查询,而无需编写特定于供应商的SQL。
ORM(对象关系映射器)是一种工具,可以让您产生使用内存数据结构的印象,该数据结构表示为具有关联对象的对象图。它通过删除所有SQL并将其抽象为OOP逻辑,简化了与SQL操作相关的应用程序逻辑。 Doctrine 2 ORM简单地处理POPO(Plain Old PHP Objects)的加载和持久化。
您可以在DBAL documentation和ORM documentation上找到有关此主题的更多信息。