• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/composite/engine.php
  • Класс: BitrixMainCompositeEngine
  • Вызов: Engine::shouldBeEnabled
static function shouldBeEnabled()
{
	if (self::isSelfHostedPortal())
	{
		return;
	}

	if (defined("USE_HTML_STATIC_CACHE") && USE_HTML_STATIC_CACHE === true)
	{
		if (
			!defined("BX_SKIP_SESSION_EXPAND") &&
			(!defined("ADMIN_SECTION") || (defined("ADMIN_SECTION") && ADMIN_SECTION != "Y"))
		)
		{
			if (self::isInvalidationRequest())
			{
				$cacheKey = Helper::convertUriToPath(
					Helper::getRequestUri(),
					Helper::getHttpHost(),
					Helper::getRealPrivateKey(Page::getPrivateKey())
				);

				if (!Locker::lock($cacheKey))
				{
					die(Engine::getAjaxError("invalidation_request_locked"));
				}
			}

			self::setUseHTMLCache();

			$options = Helper::getOptions();
			if (isset($options["AUTO_UPDATE"]) && $options["AUTO_UPDATE"] === "N")
			{
				self::setAutoUpdate(false);
			}

			if (isset($options["AUTO_UPDATE_TTL"]))
			{
				self::setAutoUpdateTTL($options["AUTO_UPDATE_TTL"]);
			}

			define("BX_SKIP_SESSION_EXPAND", true);
		}
	}
	else if (Responder::getLastError() !== null && Logger::isOn())
	{
		$result = Logger::log(array(
			"TYPE" => Responder::getLastError(),
			"MESSAGE" => Responder::getLastErrorMessage()
		));

		//try to update page title on the end of a page execution
		if ($result && $result->getId())
		{
			$recordId = $result->getId();
			$eventManager = EventManager::getInstance();
			$eventManager->addEventHandler("main", "OnEpilog", function() use($recordId) {
				if (is_object($GLOBALS["APPLICATION"]))
				{
					DebugModelLogTable::update($recordId, array(
						"TITLE" => $GLOBALS["APPLICATION"]->getTitle()
					));
				}
			});
		}
	}

	if (
		(defined("ENABLE_HTML_STATIC_CACHE_JS") && ENABLE_HTML_STATIC_CACHE_JS === true) &&
		(!defined("ADMIN_SECTION") || ADMIN_SECTION !== true)
	)
	{
		CJSCore::init(array("fc")); //to warm up localStorage
	}


}