• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/dataprovidermanager.php
  • Класс: BitrixDocumentGeneratorexists
  • Вызов: exists::getDataProvider
public function getDataProvider(
	$providerClassName,
	$value,
	array $options = [],
	DataProvider $parentDataProvider = null
): ?DataProvider
{
	$valueHash = $this->getValueHash($value, $options);
	if(!isset($this->providersCache[$providerClassName][$valueHash]))
	{
		$provider = null;
		if(self::checkProviderName($providerClassName))
		{
			if(!isset($options['noSubstitution']) || $options['noSubstitution'] !== true)
			{
				$substitutionProvider = $this->getSubstitutionProvider($providerClassName);
				if($substitutionProvider)
				{
					$providerClassName = $substitutionProvider;
				}
			}
			/** @var DataProvider $provider */
			$provider = new $providerClassName($value, $options);
			if($parentDataProvider)
			{
				$provider->setParentProvider($parentDataProvider);
			}
		}

		$this->providersCache[$providerClassName][$valueHash] = $provider;
	}

	return $this->providersCache[$providerClassName][$valueHash];
}