Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
DimensionsProcessor.php
Go to the documentation of this file.
1 <?php
8 
15 
24 {
28  private $conditionManager;
29 
33  private $dimensionScopeResolver;
34 
39  public function __construct(
40  ConditionManager $conditionManager,
41  ScopeResolverInterface $dimensionScopeResolver
42  ) {
43  $this->conditionManager = $conditionManager;
44  $this->dimensionScopeResolver = $dimensionScopeResolver;
45  }
46 
53  public function processDimensions(SelectContainer $selectContainer)
54  {
55  $query = $this->conditionManager->combineQueries(
56  $this->prepareDimensions($selectContainer->getDimensions()),
58  );
59 
60  if (!empty($query)) {
61  $select = $selectContainer->getSelect();
62  $select->where($this->conditionManager->wrapBrackets($query));
63  $selectContainer = $selectContainer->updateSelect($select);
64  }
65 
66  return $selectContainer;
67  }
68 
75  private function prepareDimensions(array $dimensions)
76  {
77  $preparedDimensions = [];
78 
79  foreach ($dimensions as $dimension) {
80  if ('scope' === $dimension->getName()) {
81  continue;
82  }
83  $preparedDimensions[] = $this->conditionManager->generateCondition(
84  $dimension->getName(),
85  '=',
86  $this->dimensionScopeResolver->getScope($dimension->getValue())->getId()
87  );
88  }
89 
90  return $preparedDimensions;
91  }
92 }
__construct(ConditionManager $conditionManager, ScopeResolverInterface $dimensionScopeResolver)
const SQL_OR
Definition: Select.php:79