无需使用Global / Singleton即可在全球范围内使用数据库连接

时间:2011-09-22 09:32:38

标签: php design-patterns singleton pdo

我正在创建一个新的PHP应用程序,并希望确保我能够正确地开展工作以保存任何未来的问题。我知道我的应用程序将有多个需要数据库连接(PDO)的类,经过长时间搜索互联网后,我无法找到明确的解决方案。

我个人喜欢单身设计模式,但是有很多人说应该不惜一切代价避免单身人士。但是,这些人没有给出这个问题的具体解决方案。

我理解应用程序可能需要多个数据库连接但是我不能创建包含每个必需数据库连接的单例(即DB :: getInst('conn1') - > query();)?

是否必须将PDO(或PDO包装器)对象传递给可能需要它的每个类?我已经做到了这一点,然后发现它很烦人地追踪它。

2 个答案:

答案 0 :(得分:0)

我个人认为单身(或多声道,如果你需要多个数据库连接)可以用于这种用途。

但是如果您不想使用它,那么您应该看一下注册表模式。

这样,您可以让您的所有应用程序类都可以使用您的数据库类实例,而不必每次都传递一个额外的参数(这非常难看,恕我直言)。

答案 1 :(得分:0)

  

但我不能创建一个包含每个必需数据库连接的单例(即DB :: getInst('conn1') - > query();)?

你可以,它被称为multiton模式