关联文章请参考:PHP框架中的设计模式-单例模式|Singleton Design Pattern-ThinkPHP v3.2
下面我们来看看ThinkPHP v5.0是如何使用单例模式来复用同一数据库连接的:
// ThinkPHP v5.0中使用单例模式实例化数据库连接:Db::connect($connection); // Db类文件路径: hinkphplibrary hinkDb.php namespace think; class Db { public static function connect($config = [], $name = false) { if (false === $name) { $name = md5(serialize($config)); } // 如果数据库连接未曾实例化,则new一个新的实例化对象。否则,直接返回已实例化的对象。 // 这个就是单例模式。 if (true === $name || !isset(self::$instance[$name])) { .... $class = false !== strpos($options['type'], '') ? $options['type'] : ' hinkdbconnector' . ucwords($options['type']); .... self::$instance[$name] = new $class($options); } return self::$instance[$name]; } }