Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
MergerFactory.php
Go to the documentation of this file.
1 <?php
7 
9 
11 {
15  private $objectManager;
16 
20  private $mergers;
21 
27  public function __construct(ObjectManagerInterface $objectManager, $mergers = [])
28  {
29  $this->objectManager = $objectManager;
30  $this->mergers = $mergers;
31  }
32 
38  public function create($consumerName)
39  {
40  if (!isset($this->mergers[$consumerName])) {
41  throw new \LogicException("Not found merger for consumer name '{$consumerName}'");
42  }
43 
44  $mergerClassName = $this->mergers[$consumerName];
45  $merger = $this->objectManager->get($mergerClassName);
46 
47  if (!$merger instanceof MergerInterface) {
48  $mergerInterfaceName = \Magento\Framework\MessageQueue\MergerInterface::class;
49  throw new \LogicException(
50  "Merger '{$mergerClassName}' for consumer name '{$consumerName}' " .
51  "does not implement interface '{$mergerInterfaceName}'"
52  );
53  }
54 
55  return $merger;
56  }
57 }
$objectManager
Definition: bootstrap.php:17
__construct(ObjectManagerInterface $objectManager, $mergers=[])