• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/dataprovidermanager.php
  • Класс: BitrixDocumentGeneratorshould
  • Вызов: should::checkProviderName
static function checkProviderName($providerClassName, $moduleId = null): bool
{
	$result = is_a($providerClassName, DataProvider::class, true);

	$documentProviders = [
		mb_strtolower(ArrayDataProvider::class),
		mb_strtolower(User::class),
	];
	if(in_array(mb_strtolower($providerClassName), $documentProviders, true))
	{
		return true;
	}
	if($moduleId && is_string($moduleId) && !empty($moduleId))
	{
		$result = false;
		$providers = static::getInstance()->getList(['filter' => ['MODULE' => $moduleId]]);
		$providerClassName = mb_strtolower($providerClassName);
		if (!is_a($providerClassName, DataProvider::class, true))
		{
			return false;
		}
		foreach($providers as $name => $provider)
		{
			if(
				$name === $providerClassName
				|| (
					isset($provider['ORIGINAL'])
					&& $provider['ORIGINAL'] === $providerClassName
				)
			)
			{
				return true;
			}
		}
	}

	return $result;
}