public static function getServerInstance($serverKey, $new = false)
{
if (!isset(self::$servers[$serverKey])) {
self::$errors[] = array('connection' => 'config', 'code' => 'n/a', 'msg' => 'Invalid server configuration key (' . $serverKey . ')');
return -1;
}
if (!isset(self::$instances[$serverKey])) {
// No instances, create one
self::$instances[$serverKey][] = new DB(self::$servers[$serverKey]);
} elseif ($new) {
// Instance exists, but force creation of a new one
self::$instances[$serverKey][] = new DB(self::$servers[$serverKey]);
// check if timeout value needs to be set
if (isset(self::$servers[$serverKey]['timeout'])) {
self::$instances[$serverKey][count(self::$instances[$serverKey]) - 1]->setConnectTimeout(self::$servers[$serverKey]['timeout']);
}
return self::$instances[$serverKey][count(self::$instances[$serverKey]) - 1];
} elseif (is_object(self::$instances[$serverKey][0])) {
// return first existing instance, providing it still exists
} else {
// Instance exists, but is no longer an object
self::$instances[$serverKey][0] = new DB(self::$servers[$serverKey]);
}
// check if timeout value needs to be set
if (isset(self::$servers[$serverKey]['timeout'])) {
self::$instances[$serverKey][0]->setConnectTimeout(self::$servers[$serverKey]['timeout']);
}
return self::$instances[$serverKey][0];
}