• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/entity.php
  • Класс: BitrixMainORMEntity
  • Вызов: Entity::compileObjectClass
static function compileObjectClass($dataClass)
{
	$dataClass = static::normalizeEntityClass($dataClass);
	$classParts = static::getEntityClassParts($dataClass);

	if (class_exists($dataClass::getObjectClass(), false)
		&& is_subclass_of($dataClass::getObjectClass(), EntityObject::class))
	{
		// class is already defined
		return $dataClass::getObjectClass();
	}

	$baseObjectClass = '\'.$dataClass::getObjectParentClass();
	$objectClassName = static::getDefaultObjectClassName($classParts['name']);

	$eval = "";
	if($classParts['namespace'] <> '')
	{
		$eval .= "namespace {$classParts['namespace']} {";
	}
	$eval .= "class {$objectClassName} extends {$baseObjectClass} {";
	$eval .= "static public $dataClass = '{$dataClass}';";
	$eval .= "}"; // end class
	if($classParts['namespace'] <> '')
	{
		$eval .= "}"; // end namespace
	}

	eval($eval);

	return $dataClass::getObjectClass();
}