Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
TableMapper.php
Go to the documentation of this file.
1 <?php
8 
9 use Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory;
12 use Magento\Eav\Model\Config as EavConfig;
20 
32 {
36  private $filterStrategy;
37 
41  private $aliasResolver;
42 
46  private $filtersExtractor;
47 
60  public function __construct(
63  CollectionFactory $attributeCollectionFactory,
64  EavConfig $eavConfig = null,
65  ScopeConfigInterface $scopeConfig = null,
66  FilterStrategyInterface $filterStrategy = null,
67  AliasResolver $aliasResolver = null,
68  FiltersExtractor $filtersExtractor = null
69  ) {
70  if (null === $filterStrategy) {
71  $filterStrategy = ObjectManager::getInstance()->get(FilterStrategyInterface::class);
72  }
73  if (null === $aliasResolver) {
74  $aliasResolver = ObjectManager::getInstance()->get(AliasResolver::class);
75  }
76  if (null === $filtersExtractor) {
77  $filtersExtractor = ObjectManager::getInstance()->get(FiltersExtractor::class);
78  }
79 
80  $this->filterStrategy = $filterStrategy;
81  $this->aliasResolver = $aliasResolver;
82  $this->filtersExtractor = $filtersExtractor;
83  }
84 
92  {
93  $appliedFilters = [];
94  $filters = $this->filtersExtractor->extractFiltersFromQuery($request->getQuery());
95  foreach ($filters as $filter) {
96  $alias = $this->aliasResolver->getAlias($filter);
97  if (!array_key_exists($alias, $appliedFilters)) {
98  $isApplied = $this->filterStrategy->apply($filter, $select);
99  if ($isApplied) {
100  $appliedFilters[$alias] = true;
101  }
102  }
103  }
104  return $select;
105  }
106 
117  public function getMappingAlias(FilterInterface $filter)
118  {
119  return $this->aliasResolver->getAlias($filter);
120  }
121 }
$storeManager
$resource
Definition: bulk.php:12
addTables(Select $select, RequestInterface $request)
Definition: TableMapper.php:91
$filters
Definition: uploader.phtml:11
__construct(AppResource $resource, StoreManagerInterface $storeManager, CollectionFactory $attributeCollectionFactory, EavConfig $eavConfig=null, ScopeConfigInterface $scopeConfig=null, FilterStrategyInterface $filterStrategy=null, AliasResolver $aliasResolver=null, FiltersExtractor $filtersExtractor=null)
Definition: TableMapper.php:60
if(!trim($html)) $alias
Definition: details.phtml:20