私は、いくつかの構造的に同一のデータベースと相互作用する必要があるPHPアプリケーションを構築しています。シングルトンファクトリを使用してデータベースへの接続を配布し、重複する接続の数を最小限に抑えたいと思います。また、データベースクラスをいくつかの関数でラップしたいと思います。
これらすべてを1つのクラスで行うことができれば非常に便利です。シングルトンファクトリを使用してみましたが(当時は良いアイデアのようでした)、有用であるためには他のクラスを返さなければならないように思われることに気づきました。シングルトンファクトリとデータベースラッピング機能を組み合わせる簡単な方法はありますか、それともデータベースラッピング関数を別のクラスに配置する必要がありますか?
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
}