Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PriceTableResolver.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 
19 {
23  private $indexScopeResolver;
24 
28  private $dimensionModeConfiguration;
29 
34  public function __construct(
35  IndexScopeResolver $indexScopeResolver,
36  DimensionModeConfiguration $dimensionModeConfiguration
37  ) {
38  $this->indexScopeResolver = $indexScopeResolver;
39  $this->dimensionModeConfiguration = $dimensionModeConfiguration;
40  }
41 
48  public function resolve($index, array $dimensions)
49  {
50  if ($index === 'catalog_product_index_price') {
51  $dimensions = $this->filterDimensions($dimensions);
52  }
53  return $this->indexScopeResolver->resolve($index, $dimensions);
54  }
55 
61  private function filterDimensions($dimensions): array
62  {
63  $existDimensions = [];
64  $currentDimensions = $this->dimensionModeConfiguration->getDimensionConfiguration();
65  foreach ($dimensions as $dimension) {
66  if ((string)$dimension->getValue() === '') {
67  throw new \InvalidArgumentException(
68  sprintf('Dimension value of "%s" can not be empty', $dimension->getName())
69  );
70  }
71  if (in_array($dimension->getName(), $currentDimensions, true)) {
72  $existDimensions[] = $dimension;
73  }
74  }
75 
76  return $existDimensions;
77  }
78 }
$index
Definition: list.phtml:44
__construct(IndexScopeResolver $indexScopeResolver, DimensionModeConfiguration $dimensionModeConfiguration)