ConfigPool.php 933 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Framework\Amqp;
  7. /**
  8. * AMQP connections pool.
  9. */
  10. class ConfigPool
  11. {
  12. /**
  13. * @var ConfigFactory
  14. */
  15. private $configFactory;
  16. /**
  17. * @var Config[]
  18. */
  19. private $pool = [];
  20. /**
  21. * Initialize dependencies.
  22. *
  23. * @param ConfigFactory $configFactory
  24. */
  25. public function __construct(ConfigFactory $configFactory)
  26. {
  27. $this->configFactory = $configFactory;
  28. }
  29. /**
  30. * Get connection by name.
  31. *
  32. * @param string $connectionName
  33. * @return Config
  34. */
  35. public function get($connectionName)
  36. {
  37. if (!isset($this->pool[$connectionName])) {
  38. $this->pool[$connectionName] = $this->configFactory->create(['connectionName' => $connectionName]);
  39. }
  40. return $this->pool[$connectionName];
  41. }
  42. }