我愿意并且确实使用单例模式.我利用了一个我将在这里调用Database_Manager的类:
class Database_Manager
{
private static $instance;
private $db_connection;
public static function getInstance()
{
if (self::$instance == null) {
$className = __CLASS__;
self::$instance = new $className();
}
return self::$instance;
}
public static function initializeConnection($connectionInfo)
{
$db = self::getInstance();
//call init functions.. connect to db, etc
//save connection to $db->db_connection;
}
public static function getDb()
{
$db = self::getInstance();
return $db->db_connection;
}
}
你可以使用initializeConnection()调用设置一次,然后从那时开始调用Database_Manager :: getDb().
这种方法的好处是可以轻松修改它来管理与多个数据库的连接,并且保证每个数据库只有一个开放连接.
请注意,我省略了Singleton实现的一些细节,例如将__construct()函数声明为private(上面的大部分内容都是从内存中复制的).我只是想展示整体方法.