- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/orm/loader.php
- Класс: BitrixMainORMon
- Вызов: on::autoLoad
static function autoLoad($class)
{
// break recursion
if (substr($class, -5) == 'Table')
{
return;
}
if (strpos($class, '\') === false)
{
// define global namespace explicitly
$class = '\'.$class;
}
$namespace = substr($class, 0, strrpos($class, '\') + 1);
$className = substr($class, strrpos($class, '\') + 1);
if (substr($className, 0, 3) == 'EO_')
{
$needFor = 'object';
if ($className == 'EO_NNM_Object')
{
// entity without name, defined by namespace
$entityName = '';
}
elseif (substr($className, -11) == '_Collection')
{
$needFor = 'collection';
$entityName = substr($className, 3, -11);
}
else
{
$entityName = substr($className, 3);
}
$entityName .= 'Table';
$entityClass = $namespace.$entityName;
if (class_exists($entityClass) && is_subclass_of($entityClass, DataManager::class))
{
($needFor == 'object')
? Entity::compileObjectClass($entityClass)
: Entity::compileCollectionClass($entityClass);
}
}
}