Доброго времени суток.
Подскажите пожалуйста, правильно ли я применяю паттерн синглтона для реализации подключения к бд?
<?
class Db
{
private static $instance;
private $DBH;
private function __construct()
{
include("app/config/config.php");
if($this->DBH = new PDO("mysql:host=". HOST .";dbname=". DBNAME , USER , PASS))
{
$this->DBH->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$this->DBH->prepare("set character_set_client='cp1251'")->execute();
$this->DBH->prepare("set character_set_results='cp1251'")->execute();
$this->DBH->prepare("set collation_connection='cp1251_general_ci'")->execute();
}
else
{
// нет подключения к БД
$this->DBH = false;
}
}
private function __clone()
{
//запрещаем клонирование объекта модификатором private
}
private function __wakeup()
{
//запрещаем клонирование объекта модификатором private
}
public static function getInstance(){ // реазилация синглтона
if(is_null(self::$instance)){ // если приватная статическая переменная пустая,
self::$instance = new Db; //то обращаемся к текущему классу
}
return self::$instance;
}
}
?>