/** * Returns the object that represents the connection to the memcached server * @param array $configuration memcached configuration * @param array $htmlCacheOptions html cache options * @return Memcache|false */ public static function getConnection(array $configuration, array $htmlCacheOptions) { if (self::$memcached === null && self::$connected === null) { $arServers = self::getServers($htmlCacheOptions); $memcached = new \Memcache; if (count($arServers) === 1) { if ($memcached->connect($arServers[0]["HOST"], $arServers[0]["PORT"])) { self::$connected = true; self::$memcached = $memcached; register_shutdown_function(array(__CLASS__, "close")); } else { self::$connected = false; } } elseif (count($arServers) > 1) { self::$memcached = $memcached; foreach ($arServers as $arServer) { self::$memcached->addServer( $arServer["HOST"], $arServer["PORT"], true, //persistent ($arServer["WEIGHT"] > 0? $arServer["WEIGHT"]: 1), 1 //timeout ); } } else { self::$connected = false; } } return self::$memcached; }