6 declare(strict_types=1);
23 private $indexScopeResolver;
28 private $dimensionModeConfiguration;
38 $this->indexScopeResolver = $indexScopeResolver;
39 $this->dimensionModeConfiguration = $dimensionModeConfiguration;
50 if (
$index ===
'catalog_product_index_price') {
51 $dimensions = $this->filterDimensions($dimensions);
53 return $this->indexScopeResolver->resolve(
$index, $dimensions);
61 private function filterDimensions($dimensions): array
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())
71 if (in_array($dimension->getName(), $currentDimensions,
true)) {
72 $existDimensions[] = $dimension;
76 return $existDimensions;
resolve($index, array $dimensions)
__construct(IndexScopeResolver $indexScopeResolver, DimensionModeConfiguration $dimensionModeConfiguration)