Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ItemResolverComposite.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
12 
17 {
19  private $itemResolvers = [];
20 
22  private $itemResolversInstances = [];
23 
27  public function __construct(array $itemResolvers)
28  {
29  $this->itemResolvers = $itemResolvers;
30  }
31 
36  {
37  $finalProduct = $item->getProduct();
38  foreach ($this->itemResolvers as $resolver) {
39  $resolvedProduct = $this->getItemResolverInstance($resolver)->getFinalProduct($item);
40  if ($resolvedProduct !== $finalProduct) {
41  $finalProduct = $resolvedProduct;
42  break;
43  }
44  }
45  return $finalProduct;
46  }
47 
54  private function getItemResolverInstance(string $className) : ItemResolverInterface
55  {
56  if (!isset($this->itemResolversInstances[$className])) {
57  $this->itemResolversInstances[$className] = ObjectManager::getInstance()->get($className);
58  }
59  return $this->itemResolversInstances[$className];
60  }
61 }
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31