Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
QueueFactory.php
Go to the documentation of this file.
1 <?php
7 
15 {
19  private $queueFactories;
20 
24  private $connectionTypeResolver;
25 
32  protected $objectManager = null;
33 
42  public function __construct(
43  ConnectionTypeResolver $connectionTypeResolver,
45  array $queueFactories = []
46  ) {
47  $this->objectManager = $objectManager;
48  $this->queueFactories = $queueFactories;
49  $this->connectionTypeResolver = $connectionTypeResolver;
50  }
51 
56  public function create($queueName, $connectionName)
57  {
58  $connectionType = $this->connectionTypeResolver->getConnectionType($connectionName);
59  if (!isset($this->queueFactories[$connectionType])) {
60  throw new \LogicException("Not found queue for connection name '{$connectionName}' in config");
61  }
62  $factory = $this->queueFactories[$connectionType];
63  $queue = $factory->create($queueName, $connectionName);
64 
65  if (!$queue instanceof QueueInterface) {
66  $queueInterface = \Magento\Framework\MessageQueue\QueueInterface::class;
67  throw new \LogicException(
68  "Queue for connection name '{$connectionName}' does not implement interface '{$queueInterface}'"
69  );
70  }
71  return $queue;
72  }
73 }
$queue
Definition: queue.php:21
create($queueName, $connectionName)
__construct(ConnectionTypeResolver $connectionTypeResolver, \Magento\Framework\ObjectManagerInterface $objectManager, array $queueFactories=[])