• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/composite/responder.php
  • Класс: BitrixMainCompositeMemcachedResponse
  • Вызов: MemcachedResponse::getConnection
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;
}