Надо сказать, что классов я толком раньше не писал.
А таких классов, как DAL - и подавно.
Поэтому вопрос к более опытным товарищам - как сделать максимально удобный yet функциональный конструктор?
Чтобы, с одной стороны, был синглтон, а с другой - возможность создать новый инстанс.
Делается это всё на mysqli.
Сейчас у меня так.
но хочу сделать все-таки на файлах, поскольку писать параметру коннекта руками в скрипте - совсем не комильфо. А в файле иметь несколько настроек, выбираемых по индексу.
Соответственно, надо в конструкторе держать пул коннектов? массив вида
?
Единственное ограничение, важное для меня - никаких посторонних по отношению к классу механизмов, типа коллекций с настройками. в лучшем случае получаем из коллекции настройки массивом и передаем на вход конструктору.
А таких классов, как DAL - и подавно.
Поэтому вопрос к более опытным товарищам - как сделать максимально удобный yet функциональный конструктор?
Чтобы, с одной стороны, был синглтон, а с другой - возможность создать новый инстанс.
Делается это всё на mysqli.
Сейчас у меня так.
PHP:
function __construct($opt = array())
{
$default = array(
'host' => 'localhost',
'user' => 'root',
'pass' => '',
'db' => 'test',
'pconnect' => FALSE,
'charset' => 'utf8',
'errmode' => 'error', //or exception
);
$opt = array_merge($default,$opt);
$this->errmode = $opt['errmode'];
if ($opt['pconnect'])
{
$opt['host'] = "p:".$opt['host'];
}
@$this->conn = mysqli_connect($opt['host'], $opt['user'], $opt['pass'], $opt['db']);
if ( !$this->conn )
{
$this->error(mysqli_connect_errno()." ".mysqli_connect_error());
}
mysqli_set_charset($this->conn, $opt['charset']) or $this->error(mysqli_error($this->conn));
unset($opt); // I am paranoid
}
Соответственно, надо в конструкторе держать пул коннектов? массив вида
PHP:
$connect['default'] = $conn;
$connect['project1'] = $conn;
Единственное ограничение, важное для меня - никаких посторонних по отношению к классу механизмов, типа коллекций с настройками. в лучшем случае получаем из коллекции настройки массивом и передаем на вход конструктору.