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.