/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/MessageQueue/Bulk/ExchangeFactory.php
75 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2018 Adobe * All Rights Reserved. */ namespace Magento\Framework\MessageQueue\Bulk; /** * Factory class for @see \Magento\Framework\MessageQueue\ExchangeInterface * * @api * @since 103.0.0 */ class ExchangeFactory implements ExchangeFactoryInterface { /** * @var ExchangeFactoryInterface[] */ private $exchangeFactories; /** * @var \Magento\Framework\MessageQueue\ConnectionTypeResolver */ private $connectionTypeResolver; /** * Object Manager instance * * @var \Magento\Framework\ObjectManagerInterface * @since 103.0.0 */ protected $objectManager = null; /** * Initialize dependencies. * * @param \Magento\Framework\MessageQueue\ConnectionTypeResolver $connectionTypeResolver * @param \Magento\Framework\ObjectManagerInterface $objectManager * @param ExchangeFactoryInterface[] $exchangeFactories */ public function __construct( \Magento\Framework\MessageQueue\ConnectionTypeResolver $connectionTypeResolver, \Magento\Framework\ObjectManagerInterface $objectManager, array $exchangeFactories = [] ) { $this->objectManager = $objectManager; $this->exchangeFactories = $exchangeFactories; $this->connectionTypeResolver = $connectionTypeResolver; } /** * @inheritdoc * @since 103.0.0 */ public function create($connectionName, array $data = []) { $connectionType = $this->connectionTypeResolver->getConnectionType($connectionName); if (!isset($this->exchangeFactories[$connectionType])) { throw new \LogicException("Not found exchange for connection name '{$connectionName}' in config"); } $factory = $this->exchangeFactories[$connectionType]; $exchange = $factory->create($connectionName, $data); if (!$exchange instanceof ExchangeInterface) { $exchangeInterface = \Magento\Framework\MessageQueue\Bulk\ExchangeInterface::class; throw new \LogicException( "Exchange for connection name '{$connectionName}' " . "does not implement interface '{$exchangeInterface}'" ); } return $exchange; } }