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