• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/service/geoip/manager.php
  • Класс: BitrixMainServiceGeoIpManager
  • Вызов: Manager::saveToStore
static function saveToStore(WebIpAddress $ipAddress, array $records, Data $geoData, string $lang): void
{
	$cacheTtl = static::getCacheTtl();

	if ($cacheTtl > 0)
	{
		$storedData = [];
		foreach (get_object_vars($geoData) as $attr => $value)
		{
			if ($value !== null)
			{
				$storedData[$attr] = $value;
			}
		}

		$network = $geoData->ipNetwork ?? $ipAddress->toRange(32);
		$records[$network][$lang] = $storedData;

		// the most specific first
		krsort($records);

		$cache = Application::getInstance()->getManagedCache();
		$cacheId = static::getCacheId($ipAddress, $geoData->handlerClass);

		$cache->clean($cacheId, self::CACHE_DIR);
		$cache->read($cacheTtl, $cacheId, self::CACHE_DIR);
		$cache->set($cacheId, $records);
	}
}