/** * getInstance * @access public * @param mixed $config * @return Yod_Database */ public static function getInstance($config = 'db_dsn') { if (is_string($config)) { $config = Yod::config($config); } if (!is_array($config)) { return false; } if (empty($config['type']) || !is_string($config['type'])) { $config['type'] = 'pdo'; } $md5key = md5(serialize($config)); if (empty(self::$_db[$md5key])) { if ($config['type'] == 'pdo') { $classname = 'Yod_DbPdo'; } else { $classname = 'Yod_Db' . ucwords($config['type']); } if (!class_exists($classname, false)) { include YOD_RUNPATH . '/Driver/' . substr($classname, 4) . '.php'; } self::$_db[$md5key] = new $classname($config); } return self::$_db[$md5key]; }