Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexBuilder.php
Go to the documentation of this file.
1 <?php
8 
25 
33 {
37  private $dimensionsProcessor;
38 
42  private $selectContainerBuilder;
43 
47  private $baseSelectStrategyMapper;
48 
52  private $filterMapper;
53 
69  public function __construct(
73  ConditionManager $conditionManager,
74  IndexScopeResolver $scopeResolver,
75  TableMapper $tableMapper,
76  ScopeResolverInterface $dimensionScopeResolver,
77  DimensionsProcessor $dimensionsProcessor = null,
78  SelectContainerBuilder $selectContainerBuilder = null,
79  BaseSelectStrategyMapper $baseSelectStrategyMapper = null,
80  FilterMapper $filterMapper = null
81  ) {
82  $this->dimensionsProcessor = $dimensionsProcessor ?: ObjectManager::getInstance()
83  ->get(DimensionsProcessor::class);
84 
85  $this->selectContainerBuilder = $selectContainerBuilder ?: ObjectManager::getInstance()
86  ->get(SelectContainerBuilder::class);
87 
88  $this->baseSelectStrategyMapper = $baseSelectStrategyMapper ?: ObjectManager::getInstance()
89  ->get(BaseSelectStrategyMapper::class);
90 
91  $this->filterMapper = $filterMapper ?: ObjectManager::getInstance()
92  ->get(FilterMapper::class);
93  }
94 
104  public function build(RequestInterface $request)
105  {
107  $selectContainer = $this->selectContainerBuilder->buildByRequest($request);
108 
110  $baseSelectStrategy = $this->baseSelectStrategyMapper->mapSelectContainerToStrategy($selectContainer);
111 
112  $selectContainer = $baseSelectStrategy->createBaseSelect($selectContainer);
113  $selectContainer = $this->filterMapper->applyFilters($selectContainer);
114  $selectContainer = $this->dimensionsProcessor->processDimensions($selectContainer);
115 
116  return $selectContainer->getSelect();
117  }
118 }
__construct(ResourceConnection $resource, ScopeConfigInterface $config, StoreManagerInterface $storeManager, ConditionManager $conditionManager, IndexScopeResolver $scopeResolver, TableMapper $tableMapper, ScopeResolverInterface $dimensionScopeResolver, DimensionsProcessor $dimensionsProcessor=null, SelectContainerBuilder $selectContainerBuilder=null, BaseSelectStrategyMapper $baseSelectStrategyMapper=null, FilterMapper $filterMapper=null)
$config
Definition: fraud_order.php:17
$storeManager
$resource
Definition: bulk.php:12