• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/loader.php
  • Класс: BitrixMainLoader
  • Вызов: Loader::requireClass
static function requireClass($className)
{
	$file = ltrim($className, "\");    // fix web env
	$file = strtolower($file);

	if (preg_match("#[^\\/a-zA-Z0-9_]#", $file))
		return;

	$tryFiles = [$file];

	if (substr($file, -5) == "table")
	{
		// old *Table stored in reserved files
		$tryFiles[] = substr($file, 0, -5);
	}

	foreach ($tryFiles as $file)
	{
		$file = str_replace('\', '/', $file);
		$arFile = explode("/", $file);

		if ($arFile[0] === "bitrix")
		{
			array_shift($arFile);

			if (empty($arFile))
			{
				break;
			}

			$module = array_shift($arFile);
			if ($module == null || empty($arFile))
			{
				break;
			}
		}
		else
		{
			$module1 = array_shift($arFile);
			$module2 = array_shift($arFile);

			if ($module1 == null || $module2 == null || empty($arFile))
			{
				break;
			}

			$module = $module1.".".$module2;
		}

		if (!self::includeModule($module))
		{
			throw new LoaderException(sprintf(
				"There is no `%s` class, module `%s` is unavailable", $className, $module
			));
		}
	}

	self::autoLoad($className);
}