• Модуль: ui
  • Путь к файлу: ~/bitrix/modules/ui/lib/entityselector/configuration.php
  • Класс: BitrixUIEntitySelectorConfiguration
  • Вызов: Configuration::createProvider
static function createProvider($moduleId, $className, $options = []): ?BaseProvider
{
	if (!is_string($className))
	{
		return null;
	}

	if (is_string($moduleId))
	{
		Loader::includeModule($moduleId);
	}

	try
	{
		$reflectionClass = new ReflectionClass($className);
		if ($reflectionClass->isAbstract())
		{
			return null;
		}

		if (!$reflectionClass->isSubclassOf(BaseProvider::class))
		{
			return null;
		}

		/** @var BaseProvider $provider */
		$provider = $reflectionClass->newInstance($options);

		return $provider;

	}
	catch (ReflectionException $exception)
	{

	}

	return null;
}