使用PHP PDO的数据库抽象类设计

TCC*_*CCV 4 php oop pdo database-abstraction

我正在设计一个Web应用程序(实际上,这是一个爱好,我正在尝试自学设计,还有什么比做它更好的方法:).无论如何,我在考虑如何处理我的数据库.我对PDO很满意,我想在我的抽象类中利用PDO.我正在考虑制作单例,因此只有一个数据库连接.这个单例将创建一个PDO连接.

在那之后,我不明白为什么我需要做太多其他事情.然后我可以使用数据库处理程序来调用PDO函数.我可能想要一些辅助函数,但是当它归结为它时,我只会将PDO用于实际的SQL查询.

这种方法有问题吗?与我使用的抽象类相比,它看起来过于简单.

Gor*_*don 5

你不需要Singleton.

数据库Singleton不会解决任何并发问题.如果有的话,它可以确保您只有一个PDO实例用于创建它的请求.它提供了全球访问,许多人认为这是一件坏事.此外,在测试Singleton时你还需要付出额外的努力.

只需创建一个延迟连接的包装器,并在引导程序中需要时存储实例,并将实例设置为DAL 超类型,例如TableDataGateway.此外,这样您就不会仅限于一个PDO实例,以防您在某个时刻需要第二个PDO实例.