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