EnvReader.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Communication\Config\Reader;
  7. use Magento\Framework\Communication\Config\Reader\EnvReader\Validator;
  8. use Magento\Framework\App\DeploymentConfig;
  9. /**
  10. * Communication configuration reader. Reads data from env.php.
  11. */
  12. class EnvReader implements \Magento\Framework\Config\ReaderInterface
  13. {
  14. const ENV_COMMUNICATION = 'communication';
  15. /**
  16. * @var DeploymentConfig
  17. */
  18. private $deploymentConfig;
  19. /**
  20. * @var Validator
  21. */
  22. private $envValidator;
  23. /**
  24. * @param DeploymentConfig $deploymentConfig
  25. * @param Validator $envValidator
  26. */
  27. public function __construct(
  28. DeploymentConfig $deploymentConfig,
  29. Validator $envValidator
  30. ) {
  31. $this->deploymentConfig = $deploymentConfig;
  32. $this->envValidator = $envValidator;
  33. }
  34. /**
  35. * Read communication configuration from env.php
  36. *
  37. * @param string|null $scope
  38. * @return array
  39. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  40. */
  41. public function read($scope = null)
  42. {
  43. $configData = $this->deploymentConfig->getConfigData(self::ENV_COMMUNICATION);
  44. if ($configData) {
  45. $this->envValidator->validate($configData);
  46. }
  47. return $configData ?: [];
  48. }
  49. }