Вводные: класс реализующий методы работы с БД и класс которому нужна БД никак не связаны между собой (не наследники).
Цель:
1) что бы класс которому нужна БД мог пользоваться ей без передачи каждый раз ему БД в явном виде
2) Параметры подключения вынесены из класса БД.
Код:
class Config
{
public $host = 'localhost';
public $db = 'loadbot_db';
public $charset = 'utf8';
public $user = 'user';
public $pass = 'qwerty';
}
class DB
{
public function __construct(Config $config) {
// тут происходит подключение к БД
}
// тут все остальные методы работы с БД
}
class NeedDB
{
public $db;
public function __construct() {
$cache = new Config();
$this->db = new DB($cache);
}
}
$var = new NeedDB();
Корректно ли реализовано, есть ли недостатки, можно ли улучшить?