使用PHP数据库类作为单例有什么缺点?

时间:2010-06-26 15:37:40

标签: php singleton

将PHP数据库类用作singleton

有什么缺点

4 个答案:

答案 0 :(得分:5)

缺点与使用Singleton模式的任何类相同:

答案 1 :(得分:1)

如果您的DB类构建为仅连接到单个数据库,那么当您的脚本需要连接到两个单独的数据库时,您将遇到问题。但是,您可以构建单例类以接受多个服务器配置,然后在单例中管理它们。

否则,将数据库类设计为单例是一种很有意义的实践,因为您可以严格控制脚本在任何给定时间内建立的连接数。

答案 2 :(得分:1)

很难对它进行单元测试,也无法建立多个数据库连接。众所周知,全局变量有许多缺点,单身人士也不例外,只是他们是一个更“友好”的全局变量。

我发现了一个很好的article和一个旧的SO question

答案 3 :(得分:1)

您不能使用两个数据库连接。你会想要这个因为:

  • 你有两个数据库。
  • 当另一个事务已在“当前”数据库连接上运行时,您希望在事务中执行某些操作。
  • 您希望在单元测试中使用多个模拟数据库实例