Я создаю приложение PHP, которое должно взаимодействовать с несколькими структурно идентичными базами данных. Я хотел бы использовать фабрику синглтонов для раздачи соединений с базами данных и минимизации количества повторяющихся соединений. Я также хотел бы обернуть класс базы данных несколькими функциями.
Было бы чрезвычайно удобно, если бы я мог делать все это в одном классе. Я попытался использовать одноэлементную фабрику (в то время это казалось хорошей идеей), но только для того, чтобы понять, что, похоже, нужно возвращать другие классы, чтобы быть полезными. Есть ли простой способ объединить функции фабрики-одиночки и обтекания базы данных, или мне просто поместить функции обтекания базы данных в другой класс?
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
}