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