• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/provider.php
  • Класс: BitrixImConnectorProvider
  • Вызов: Provider::getProviderForConnector
static function getProviderForConnector($connector, $arguments, string $direction): Result
{
	$result = new Result();

	$direction = self::validateDirection($direction);

	$idProvider = self::getIdProvider(Connector::getConnectorRealId($connector));

	if (empty($idProvider))
	{
		return $result->addError(new Error(
			Loc::getMessage('IMCONNECTOR_ERROR_NO_CORRECT_PROVIDER'),
			Library::ERROR_IMCONNECTOR_NO_CORRECT_PROVIDER,
			__METHOD__,
			$connector
		));
	}

	$nameClassProvider = 'Bitrix\ImConnector\Provider\' . $idProvider . '\' . $direction;

	if (class_exists($nameClassProvider))
	{
		/** @var ProviderBaseInput|ProviderBaseOutput $provider */
		$provider = new $nameClassProvider(...$arguments);

		$result->setResult($provider);
	}
	else
	{
		$result->addError(new Error(
			Loc::getMessage('IMCONNECTOR_ERROR_COULD_NOT_GET_PROVIDER_OBJECT'),
			Library::ERROR_IMCONNECTOR_COULD_NOT_GET_PROVIDER_OBJECT,
			__METHOD__,
			$connector
		));
	}

	return $result;
}