can*_*era 3 orm pdo doctrine-orm
我已经和Doctrine 2 ORM合作了一段时间,而且我从未完全理解过.
Doctrine DBAL(数据库抽象层)的用途是什么?PDO本身就是一个数据库抽象层,为什么ORM不能直接与PDO一起工作?
我不是想找到一种方法来使用DBAL或任何东西.我只是不明白为什么需要额外的层,似乎无法在文档中找到明确的答案.
不,PDO是"数据访问层",而不是"数据库抽象层".这意味着您可以切换数据库并仍然进行相同的方法调用,但PDO不会重写sql查询以匹配所选数据库或模拟任何数据库功能.
PDO提供了一个数据访问抽象层,这意味着,无论您使用哪个数据库,都可以使用相同的函数来发出查询和获取数据.PDO不提供数据库抽象; 它不会重写SQL或模拟缺少的功能.如果需要该工具,则应使用完整的抽象层.