Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 全局可用的数据库连接,无需使用全局/单例_Php_Design Patterns_Singleton_Pdo - Fatal编程技术网

Php 全局可用的数据库连接,无需使用全局/单例

Php 全局可用的数据库连接,无需使用全局/单例,php,design-patterns,singleton,pdo,Php,Design Patterns,Singleton,Pdo,我正在创建一个新的PHP应用程序,并希望确保正确地进行基础工作,以避免将来出现任何问题。我知道我的应用程序将有不止一个类需要数据库连接(PDO),在互联网上搜索了很长时间后,我找不到一个确定的解决方案 我个人喜欢单例设计模式,但有很多人说,总的来说应该不惜一切代价避免单例。然而,这些人并没有给出这个问题的具体解决方案 我知道一个应用程序可能需要多个数据库连接,但我不能创建一个包含每个所需数据库连接的单例(即DB::getInst('conn1')->query();) 是否必须将PDO(或PDO

我正在创建一个新的PHP应用程序,并希望确保正确地进行基础工作,以避免将来出现任何问题。我知道我的应用程序将有不止一个类需要数据库连接(PDO),在互联网上搜索了很长时间后,我找不到一个确定的解决方案

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

我知道一个应用程序可能需要多个数据库连接,但我不能创建一个包含每个所需数据库连接的单例(即DB::getInst('conn1')->query();)


是否必须将PDO(或PDO包装器)对象传递给可能需要它的每个类?我以前做过这件事,但发现跟踪它很烦人。

我个人认为,对于这样的用法,单通(或多通,如果需要多个DB连接)是合适的

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

通过这种方式,您可以使数据库类实例可用于所有应用程序的类,而不必每次都传递额外的参数(这非常难看,IMHO)

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


您可以,它被称为pattern

来看看:或者通常的依赖注入。也许这会给你一个新的视角。谢谢,我认为多音是不错的,但我想这可以归结为个人喜好