Бортовой журнал Ктулху

Класс работы с БД на паттерне Singleton

Пример создания класса для работы с базой данных с использованием шаблона проектирования singleton. Пример упрощенный, много кода придется писать под свои задачи, но его достаточно для понимания как это работает.

 

class DB
{
 private static $_instance; //только один экземпляр подключения!
 private $conn;
 private $dbname = 'test_db';
 private $dbpass = 'R^nhbYk9';
 private $dbhost = 'localhost';
 private $dbuser = 'andrey.myhalych';

 /**
 * Экземпляр класса DB
 * @return DB
 */
 public static function getInstance() {
 if(!self::$_instance) { // Если экземпляр уже создан
 self::$_instance = new self();
 }
 return self::$_instance;
 }
/**
 * DB constructor.
 */
 public function __construct()
 {
 $this->conn = @mysql_connect($this->host, $this->dbuser, $this->dbpass);
 }
/**
 * Возвращает переменную с подключением
 * @return resource
 */
 public function connect()
 {
 return $this->conn;
 }
/**
 * глушим подключение
 */
 public function __destruct()
 {
 mysql_close($this->conn);
 }
/**
 * Возвращает массив с ID записи и отресайзеным фото в base64
 * @param $sql
 * @return array
 */
public function getRows($sql)
 {
/*
 code here
 */
 return $res;
 }
/**
 * Сохраняем результат обратно в базу
 * @param $rowid
 * @param $data
 */
 public function setRows($rowid, $data)
 {
 /*
 code here
 */
 return $res;
 }

 /**
 * Предотвращаем создание нескольких копий
 */
 private function __clone()
 {
}
}