Example #1
0
 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;
 }