public static function getInstance($module = 'default', $use_main = false) { $use_main = $use_main ? true : false; $key = $module . $use_main; if (isset(self::$_instances[$key])) { return self::$_instances[$key]; } $path = dirname(__FILE__); if (is_file($obj_file = $path . '/write/DB_' . $module . '.conf.obj')) { $array = unserialize(file_get_contents($obj_file)); } else { if (is_file($file = $path . '/DB/' . $module . '.conf.php')) { $array = (include $file); file_put_contents($obj_file, serialize($array)); } else { if (is_file($file = $path . '/DB/default.conf.php')) { $array = (include $file); file_put_contents($obj_file, serialize($array)); } else { die("failed init DB::getInstance()."); } } } $index = rand(1, count($array) - 1); $arr = $array[$index]; $db = new self($arr[0], $arr[1], $arr[2]); $arr = $array[0]; $db->set_main_dsn($arr[0], $arr[1], $arr[2]); $db->set_use_main($use_main); self::$_instances[$key] = $db; return $db; }