- Модуль: 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);
}
}