• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/session/sessionconfigurationresolver.php
  • Класс: BitrixMainSessionSessionConfigurationResolver
  • Вызов: SessionConfigurationResolver::getSessionConfig
public function getSessionConfig(): array
{
	if (defined("BX_SECURITY_SESSION_VIRTUAL") && BX_SECURITY_SESSION_VIRTUAL === true)
	{
		return [
			'mode' => self::MODE_DEFAULT,
			'handlers' => [
				'general' => ['type' => self::TYPE_ARRAY]
			]
		];
	}

	$sessionConfig = $this->configuration::getValue("session") ?: [];
	$saveHandlerFromIni = ini_get('session.save_handler');
	if ((!$sessionConfig || $sessionConfig === ['mode' => self::MODE_DEFAULT]) && $saveHandlerFromIni !== 'files')
	{
		//when some specific save_handler was installed and we can't change behavior.
		return [
			'mode' => self::MODE_DEFAULT,
			'handlers' => [
				'general' => ['type' => self::TYPE_CUSTOM_INI]
			]
		];
	}

	$sessionConfig['mode'] = $sessionConfig['mode'] ?? self::MODE_DEFAULT;
	$sessionConfig['handlers']['general'] = $this->normalizeSessionOptions($sessionConfig['handlers']['general'] ?? ['type' => self::TYPE_FILE]);

	if (defined("BX_FORCE_DISABLE_SEPARATED_SESSION_MODE") && BX_FORCE_DISABLE_SEPARATED_SESSION_MODE === true)
	{
		$sessionConfig['mode'] = self::MODE_DEFAULT;
	}

	return $sessionConfig;
}