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

时间:2015-04-03 23:57:45

标签: php pdo doctrine dbal database-abstraction

如果我使用Doctrine's Database Abstraction Layer(DBAL)而不是简单的PDO,我会获得什么?

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

我错过了什么?

1 个答案:

答案 0 :(得分:0)

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

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

无论如何,它们都是非常低级的抽象。只有在熟悉相关数据库的情况下才应使用它们。我的意思是,您应该了解所有类型的存储数据,并以正确的方式使用它,您还应该具有构建不同数据库体系结构的经验,并了解每种关系类型的优势。

如果没有,我建议你使用更抽象的东西(例如Eloquent)。

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