Я создаю приложение PHP, которое должно взаимодействовать с несколькими структурно идентичными базами данных. Я хотел бы использовать singleton factory для раздачи подключений к базам данных и минимизировать количество дублирующихся подключений. Я также хотел бы обернуть класс базы данных несколькими функциями.
Было бы крайне удобно, если бы я мог делать все это в одном классе. Я попытался использовать singleton factory (в то время это казалось хорошей идеей), только чтобы понять, что, похоже, он должен возвращать другие классы, чтобы быть полезными. Есть ли простой способ объединить одноэлементную фабрику и функциональность упаковки базы данных, или я должен просто поместить функции упаковки базы данных в другой класс?
static private $instance = array();
private function __construct($name) {
switch ($name) {
//select db connection
}
$this->db = $this->getDb();
return;
}
protected function __clone() {
}
public static function singleton($name) {
if (!isset(self::$instance[$name])) {
$c = __CLASS__;
self::$instance[$name] = new $c($name);
}
return self::$instance[$name];
}
public function wrapperFunction() {
//stuff
}