Env.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\MessageQueue\Config\Reader;
  7. use Magento\Framework\App\DeploymentConfig;
  8. use Magento\Framework\MessageQueue\Config\Reader\Env\Converter\Publisher as PublisherConverter;
  9. use Magento\Framework\App\ObjectManager;
  10. /**
  11. * Communication configuration reader. Reads data from env.php.
  12. */
  13. class Env implements \Magento\Framework\Config\ReaderInterface
  14. {
  15. const ENV_QUEUE = 'queue';
  16. const ENV_PUBLISHERS = 'publishers';
  17. const ENV_TOPICS = 'topics';
  18. const ENV_CONSUMERS = 'consumers';
  19. const ENV_CONSUMER_CONNECTION = 'connection';
  20. const ENV_CONSUMER_MAX_MESSAGES = 'max_messages';
  21. /**
  22. * @var DeploymentConfig
  23. */
  24. private $deploymentConfig;
  25. /**
  26. * @var PublisherConverter
  27. */
  28. private $publisherConverter;
  29. /**
  30. * @param DeploymentConfig $deploymentConfig
  31. * @param PublisherConverter|null $publisherConverter
  32. */
  33. public function __construct(
  34. DeploymentConfig $deploymentConfig,
  35. PublisherConverter $publisherConverter = null
  36. ) {
  37. $this->deploymentConfig = $deploymentConfig;
  38. $this->publisherConverter = $publisherConverter ?: ObjectManager::getInstance()->get(PublisherConverter::class);
  39. }
  40. /**
  41. * Read communication configuration from env.php
  42. *
  43. * @param string|null $scope
  44. * @return array
  45. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  46. */
  47. public function read($scope = null)
  48. {
  49. $configData = $this->deploymentConfig->getConfigData(self::ENV_QUEUE) ?: [];
  50. if (isset($configData['config'])) {
  51. $configData = $this->publisherConverter->convert($configData = $configData['config']);
  52. }
  53. return $configData;
  54. }
  55. }