[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: одиночка. выглядит так?
DarkGuy
Доброго дня!
Я правельно понял одиночку?
class Database
{
//объявляем
private $_connect = null;
private $error = null;

//запрещаем
final private function __wakeup(){}
final private function __clone() {}
// Возвращает ссылку
public static function get()
{
if(!extension_loaded('pdo')){
throw new Exception('PDO не работает');
}else{
static $instance = null;
if ( $instance == null ) $instance = new self();
return $instance;
}
}

//создаем подключение
private function __construct(){
try
{
$params = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
);
if (DB_DRIVER == 'mysql') {
$params[PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES '".CHARACTER."'";
}
$params[PDO::ATTR_PERSISTENT] = true;

$this->_connect = new PDO(DB_DRIVER . ':host=' . DB_HOST . ';dbname=' . DB_NAME, DB_USER, DB_PASS, $params);
$this->_connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$this->_connect->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$this->_connect->query( 'SET character_set_connection = ' . CHARACTER . ';' );
$this->_connect->query( 'SET character_set_client = ' . CHARACTER . ';' );
$this->_connect->query( 'SET character_set_results = ' . CHARACTER . ';' );
$this->_connect->query('SET NAMES '.CHARACTER );
}
catch (PDOException $e)
{
throw new Exception('Mysql error'.$e->getMessage());
}
}


//е*м подключение
public function __destruct() {
$this->connect = null;
self::get()->_connect = null;
}

}


з.ы. вариант черновой.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.