Basecoat\DB::getServerInstance PHP Method

getServerInstance() public static method

Return an instance of the class connected to the specified server If any instance of the request server already exist, that instance will be returned
public static getServerInstance ( mixed $serverKey, boolean $new = false )
$serverKey mixed the $servers key to use for connecting
$new boolean force the creation of a new instance
    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];
    }