• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/data/cacheenginexcache.php
  • Класс: BitrixMainDataCacheEngineXCache
  • Вызов: CacheEngineXCache::write
public function write($allVars, $baseDir, $initDir, $filename, $TTL)
{
	$baseDirVersion = xcache_get($this->sid.$baseDir);
	if ($baseDirVersion === null)
	{
		$baseDirVersion = md5(mt_rand());
		if (!xcache_set($this->sid.$baseDir, $baseDirVersion))
			return;
	}

	if ($initDir !== false)
	{
		$initDirVersion = xcache_get($baseDirVersion."|".$initDir);
		if ($initDirVersion === null)
		{
			$initDirVersion = md5(mt_rand());
			if (!xcache_set($baseDirVersion."|".$initDir, $initDirVersion))
				return;
		}
	}
	else
	{
		$initDirVersion = "";
	}

	$allVars = serialize($allVars);
	$this->written = mb_strlen($allVars);

	$key = $baseDirVersion."|".$initDirVersion."|".$filename;
	xcache_set($key, $allVars, intval($TTL) * $this->ttlMultiplier);

	if ($this->useLock)
	{
		$this->unlock($baseDir, $initDir, $key."~", $TTL);
	}
}