【发布时间】:2011-03-17 08:54:27
【问题描述】:
我正在设计一个 Web 应用程序(真的,这是一种爱好,我正在尝试自学设计,还有什么比这样做更好的方法 :)。无论如何,我正在考虑如何处理我的数据库。我对PDO 很满意,并且我正在考虑在我的抽象类中利用 PDO。我正在考虑制作一个单例,以便只有一个数据库连接。这个单例会创建一个 PDO 连接。
在那之后,我不明白为什么我需要做太多其他事情。然后我可以使用数据库处理程序来调用 PDO 函数。我可能需要一些辅助函数,但是当它真正开始时,我只会使用 PDO 来进行实际的 SQL 查询。
这种方法有问题吗?与我使用的抽象类相比,它似乎过于简单。
【问题讨论】:
-
数据库抽象是一个荒谬的神话。 ORM 是另一个故事,同样邪恶,但至少是真实的。
-
@Gordon,你能详细说明为什么我不需要单例吗?我一直听说你需要单例来确保没有同时写入之类的东西。
-
一个 DB Singleton 不会解决任何并发问题。如果有的话,它可以确保您对于创建它的请求只有一个 PDO 实例。但为此您不需要 Singleton。 Just create a wrapper that lazy connects when needed 在您的引导程序中并将实例设置为您的 DAL 超类型。这样,您就不会将自己限制为只有一个 PDO 实例,以防您在某个时候需要第二个。
-
谢谢 Gordon - 如果你碰巧把它放在答案中,我很乐意选择它。
标签: php oop pdo database-abstraction