![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework-message-queue/Publisher/Config/Env/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\MessageQueue\Publisher\Config\Env; use Magento\Framework\MessageQueue\Config\Data as MessageQueueConfigData; use Magento\Framework\App\DeploymentConfig; use Magento\Framework\MessageQueue\Config\Reader\Env as MessageQueueEnvReader; /** * Publisher configuration reader. Reads data from env.php. */ class Reader implements \Magento\Framework\Config\ReaderInterface { /** * @var \Magento\Framework\MessageQueue\Config\Reader\Env */ private $deploymentConfig; /** * @var MessageQueueConfigData */ private $configData; /** * Mapping between default publishers name and connections * * @var array */ private $publisherNameToConnectionMap; /** * @param DeploymentConfig $deploymentConfig * @param MessageQueueConfigData $configData * @param array $publisherNameToConnectionMap */ public function __construct( DeploymentConfig $deploymentConfig, MessageQueueConfigData $configData, $publisherNameToConnectionMap = [] ) { $this->deploymentConfig = $deploymentConfig; $this->configData = $configData; $this->publisherNameToConnectionMap = $publisherNameToConnectionMap; } /** * Read publisher configuration from env.php * * @param string|null $scope * @return array */ public function read($scope = null) { $configData = $this->deploymentConfig->getConfigData(MessageQueueEnvReader::ENV_QUEUE); if (isset($configData['config'])) { $configData = isset($configData['config'][MessageQueueEnvReader::ENV_PUBLISHERS]) ? $configData['config'][MessageQueueEnvReader::ENV_PUBLISHERS] : []; } else { $configData = isset($configData[MessageQueueEnvReader::ENV_PUBLISHERS]) ? $this->convertConfigData($scope) : []; } return $configData; } /** * Convert publisher related data to publisher config format * * @param string|null $scope * @return array */ private function convertConfigData($scope) { $configData = []; $topicsConfig = $this->configData->get('topics'); foreach ($topicsConfig as $topicName => $topicConfig) { $configData[$topicName] = []; if (isset($topicConfig['disabled'])) { $configData[$topicName]['disabled'] = $topicConfig['disabled']; } $publisherName = $this->configData->get('topics/' . $topicName . '/publisher', $scope); $config = $this->configData->get('publishers/' . $publisherName, $scope); if (!empty($config) && isset($this->publisherNameToConnectionMap[$publisherName])) { $connectionName = $this->publisherNameToConnectionMap[$publisherName]; $config['name'] = $config['connection']; unset($config['connection']); $disabled = isset($config['disabled']) ? $config['disabled'] : false; $config['disabled'] = $disabled; $configData[$topicName]['connections'][$connectionName] = $config; } } return $configData; } }