如果我使用Doctrine's Database Abstraction Layer(DBAL)而不是简单的PDO,我会获得什么?
不是PDO本身应该是一个抽象层吗?据我所知,我获得的唯一好处是能够将Oracle的oci8驱动程序与类似PDO的API一起使用。
我错过了什么?
答案 0 :(得分:0)
任何数据库抽象层的好处都是减少开发人员错误的数量(不仅如此)。
它们之间的区别在于抽象层次。例如,DBAL构建在PDO之上。这意味着,DBAL绝对应该比PDO更高级别的抽象。
无论如何,它们都是非常低级的抽象。只有在熟悉相关数据库的情况下才应使用它们。我的意思是,您应该了解所有类型的存储数据,并以正确的方式使用它,您还应该具有构建不同数据库体系结构的经验,并了解每种关系类型的优势。
如果没有,我建议你使用更抽象的东西(例如Eloquent)。
PS我知道上面写的所有内容,但无论如何我使用了在Eloquent之上构建的抽象层。所以,我看到了使用最高级别抽象的感觉......