123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\MessageQueue;
- /**
- * Queue factory
- */
- class QueueRepository
- {
- /**
- * @var \Magento\Framework\ObjectManagerInterface
- */
- private $objectManager;
- /**
- * @var QueueInterface[]
- */
- private $queueInstances;
- /**
- * @var QueueFactoryInterface
- */
- private $queueFactory;
- /**
- * @param \Magento\Framework\ObjectManagerInterface $objectManager
- * @param string[] $queues
- *
- * @SuppressWarnings(PHPMD.UnusedFormalParameter)
- */
- public function __construct(\Magento\Framework\ObjectManagerInterface $objectManager, array $queues = [])
- {
- $this->objectManager = $objectManager;
- }
- /**
- * Get queue instance by connection name and queue name.
- *
- * @param string $connectionName
- * @param string $queueName
- * @return QueueInterface
- * @throws \LogicException
- */
- public function get($connectionName, $queueName)
- {
- if (!isset($this->queueInstances[$connectionName][$queueName])) {
- $queue = $this->getQueueFactory()->create($queueName, $connectionName);
- $this->queueInstances[$connectionName][$queueName] = $queue;
- }
- return $this->queueInstances[$connectionName][$queueName];
- }
- /**
- * Get queue factory.
- *
- * @return QueueFactoryInterface
- * @deprecated 102.0.1
- */
- private function getQueueFactory()
- {
- if ($this->queueFactory === null) {
- $this->queueFactory = $this->objectManager->get(QueueFactoryInterface::class);
- }
- return $this->queueFactory;
- }
- }
|