Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Reader.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Framework\MessageQueue\Config\Data as MessageQueueConfigData;
12 
17 {
21  private $deploymentConfig;
22 
26  private $configData;
27 
33  private $publisherNameToConnectionMap;
34 
40  public function __construct(
41  DeploymentConfig $deploymentConfig,
42  MessageQueueConfigData $configData,
43  $publisherNameToConnectionMap = []
44  ) {
45  $this->deploymentConfig = $deploymentConfig;
46  $this->configData = $configData;
47  $this->publisherNameToConnectionMap = $publisherNameToConnectionMap;
48  }
49 
56  public function read($scope = null)
57  {
58  $configData = $this->deploymentConfig->getConfigData(MessageQueueEnvReader::ENV_QUEUE);
59  if (isset($configData['config'])) {
60  $configData = isset($configData['config'][MessageQueueEnvReader::ENV_PUBLISHERS])
61  ? $configData['config'][MessageQueueEnvReader::ENV_PUBLISHERS]
62  : [];
63  } else {
64  $configData = isset($configData[MessageQueueEnvReader::ENV_PUBLISHERS])
65  ? $this->convertConfigData($scope)
66  : [];
67  }
68  return $configData;
69  }
70 
77  private function convertConfigData($scope)
78  {
79  $configData = [];
80  $topicsConfig = $this->configData->get('topics');
81  foreach ($topicsConfig as $topicName => $topicConfig) {
82  $configData[$topicName] = [];
83  if (isset($topicConfig['disabled'])) {
84  $configData[$topicName]['disabled'] = $topicConfig['disabled'];
85  }
86  $publisherName = $this->configData->get('topics/' . $topicName . '/publisher', $scope);
87  $config = $this->configData->get('publishers/' . $publisherName, $scope);
88  if (!empty($config) && isset($this->publisherNameToConnectionMap[$publisherName])) {
89  $connectionName = $this->publisherNameToConnectionMap[$publisherName];
90  $config['name'] = $config['connection'];
91  unset($config['connection']);
92  $disabled = isset($config['disabled']) ? $config['disabled'] : false;
93  $config['disabled'] = $disabled;
94  $configData[$topicName]['connections'][$connectionName] = $config;
95  }
96  }
97  return $configData;
98  }
99 }
$config
Definition: fraud_order.php:17
$deploymentConfig
__construct(DeploymentConfig $deploymentConfig, MessageQueueConfigData $configData, $publisherNameToConnectionMap=[])
Definition: Reader.php:40