Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 什么是信条';s数据库抽象层在简单PDO上提供什么?_Php_Pdo_Doctrine_Dbal_Database Abstraction - Fatal编程技术网

Php 什么是信条';s数据库抽象层在简单PDO上提供什么?

Php 什么是信条';s数据库抽象层在简单PDO上提供什么?,php,pdo,doctrine,dbal,database-abstraction,Php,Pdo,Doctrine,Dbal,Database Abstraction,如果我使用(DBAL)而不是简单的PDO,我会得到什么 PDO本身不应该是一个抽象层吗?据我所知,我获得的唯一好处是能够将Oracle的oci8驱动程序与类似PDO的API一起使用 我缺少什么?任何DB抽象层的好处都是减少开发人员的错误数量(不仅仅是这一点) 它们之间的区别在于抽象的层次。例如,DBAL构建在PDO之上。这意味着,DBAL绝对应该比PDO具有更高的抽象级别 无论如何,它们都是非常低级的抽象。只有当您对相关数据库有很好的了解时,才应该使用它们。我的意思是,您应该了解所有类型的存储数

如果我使用(DBAL)而不是简单的PDO,我会得到什么

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


我缺少什么?

任何DB抽象层的好处都是减少开发人员的错误数量(不仅仅是这一点)

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

无论如何,它们都是非常低级的抽象。只有当您对相关数据库有很好的了解时,才应该使用它们。我的意思是,您应该了解所有类型的存储数据,并正确使用它,还应该具有构建不同数据库体系结构的经验,并了解每种关系类型的优点

如果没有,我建议您使用更高抽象的东西(例如雄辩)


PS我知道我上面写的所有内容,但无论如何,我使用的抽象层是建立在雄辩之上的。因此,从外观上看,我看到了使用我拥有的最高抽象级别的意义…

!例如,流体查询生成器、跨平台模式查询、事件机制、分片系统……在我只使用DBAL的项目中,查询生成器对我来说是最重要的。自定义类型也很方便。一定错过了那一页。谢谢你的回答。