Ben genellikle diyebileceğim bir Singleton sınıf kullanabilirsiniz DatabaseManager. Denilen statik ortak yöntem yaparak getDB(), ben her yerde mevcut olacak gibi, etrafında veritabanını geçen hakkında endişelenmenize gerek asla. Burada kısa bir taslaktır bulunuyor:
class DatabaseManager
{
private static $instance;
private $db_connection;
public initDBConnection($connectionInfo) {
//make connection
}
public static function getInstance()
{
if (self::$instance == null) {
$className = __CLASS__;
self::$instance = new $className();
}
return self::$instance;
}
public static function getDB()
{
return self::getInstance()->db_connection;
}
}
Eğer bir veritabanı bağlantısı başlatılır sonra, sadece veritabanı bağlantısı almak için DatabaseManager::getDB() arayabilirsiniz.
Bu yaklaşımın güzelliği kolayca birden fazla veritabanı bağlantıları yönetmek yanı sıra, herhangi bir veritabanına açık birden fazla bağlantı var asla sağlamak için genişletilmiş olmasıdır. Lütfen bağlantıları çok verimli hale getirir.