0

通常,一个好的谷歌搜索足以回答我的大部分问题,但$this不是其中之一。因此,这是我的第一个问题:

很多人(在 SO 和其他地方)说 Singletton 很糟糕。实际上太糟糕了,以至于一些开发人员甚至认为它是一种反基督反模式,应该被依赖注入模式所取代。这个“规则”的唯一例外是记录器(嗯,几乎)。

有人争辩说,因为在 PHP 中变量最多是 1 个请求旧的......

[...] Singleton 的两个主要目的之一在这里不适用。

但是在那个请求期间,可能/将会发生从数据库中的多次提取。数据库是所有请求之间的共享资源,如果我不确定连接尽可能少,我可能会遇到max_connections错误(只是一个例子)。

那么,如果 Singleton 在大多数情况下是一个糟糕的设计,那么管理数据库连接呢?Singleton 是个好主意还是我应该选择 DI ?

提前致谢 : )

4

2 回答 2

2

在这种情况下,单例是一个糟糕的设计。 谷歌会说在所有情况下这都是一个坏主意。

这里的正确答案是连接池。

您可以通过将池配置为远低于限制并确保您的代码在完成所有连接后立即严格关闭它们来避免最大连接问题。周期应该很短:检查池,执行SQL,关闭连接。

于 2013-09-23T22:18:00.867 回答
0

用于数据库连接的单例模式也是个坏主意。您使用(或需要)多少个数据库连接取决于您的应用程序设计。

您可以在整个请求中使用相同的数据库连接类实例,但不使用单例模式。

于 2013-09-23T22:23:53.597 回答