• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/lib/orm/objectify/entityobject.php
  • Класс: BitrixMainORMObjectifyEntityObject
  • Вызов: EntityObject::__construct
public function __construct($setDefaultValues = true)
{
	if (is_array($setDefaultValues))
	{
		// we have custom default values
		foreach ($setDefaultValues as $fieldName => $defaultValue)
		{
			$field = $this->entity->getField($fieldName);

			if ($field instanceof Reference)
			{
				if (is_array($defaultValue))
				{
					$defaultValue = $field->getRefEntity()->createObject($defaultValue);
				}

				$this->set($fieldName, $defaultValue);
			}
			elseif (($field instanceof OneToMany || $field instanceof ManyToMany)
				&& is_array($defaultValue))
			{
				foreach ($defaultValue as $subValue)
				{
					if (is_array($subValue))
					{
						$subValue = $field->getRefEntity()->createObject($subValue);
					}

					$this->addTo($fieldName, $subValue);
				}
			}
			else
			{
				$this->set($fieldName, $defaultValue);
			}
		}
	}

	// set map default values
	if ($setDefaultValues || is_array($setDefaultValues))
	{
		foreach ($this->entity->getScalarFields() as $fieldName => $field)
		{
			if ($this->sysHasValue($fieldName))
			{
				// already set custom default value
				continue;
			}

			$defaultValue = $field->getDefaultValue($this);

			if ($defaultValue !== null)
			{
				$this->set($fieldName, $defaultValue);
			}
		}
	}
}