Doctrine的数据库抽象层提供什么比简单的PDO?

问题描述:

如果我在简单的PDO上使用Doctrine's Database Abstraction Layer(DBAL),我会获得什么?Doctrine的数据库抽象层提供什么比简单的PDO?

是不是PDO应该是抽象层本身?据我所知,我获得的唯一好处是能够使用Oracle的oci8驱动程序和类似PDO的API。

我错过了什么?

+1

[很多东西](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest /),由它的外观!例如。流体查询生成器,跨平台模式审问,事件机制,分片系统... – halfer 2015-04-04 00:36:08

+0

在我只使用DBAL的项目中,查询生成器对我来说是最重要的。自定义类型也非常方便。 – prodigitalson 2015-04-04 02:52:20

+0

必须错过该页面。谢谢您的回答。 – cesarv 2015-04-10 15:19:55

任何数据库抽象层的好处是减少了开发人员的错误数量(不仅如此)。

它们之间的区别在于抽象的级别。例如,DBAL建立在PDO之上。这意味着,DBAL绝对应该比PDO具有更高的抽象层次。

无论如何,他们都是非常低层次的抽象。只有对相关数据库有足够的了解,才应该使用它们。我的意思是,您应该了解所有类型的存储数据,并且正确使用它,同时您也应该具备构建不同数据库架构的经验,并了解每种关系类型的优点。

如果不是,我建议你使用更高级的抽象(例如雄辩)。

PS我知道我上面写的所有东西,但无论如何我使用建立在Eloquent之上的抽象层。所以,我看到了使用最高抽象级别的感觉...