9 use Magento\Catalog\Model\ResourceModel\Product\Attribute\CollectionFactory;
36 private $filterStrategy;
41 private $aliasResolver;
46 private $filtersExtractor;
63 CollectionFactory $attributeCollectionFactory,
70 if (
null === $filterStrategy) {
73 if (
null === $aliasResolver) {
76 if (
null === $filtersExtractor) {
80 $this->filterStrategy = $filterStrategy;
81 $this->aliasResolver = $aliasResolver;
82 $this->filtersExtractor = $filtersExtractor;
94 $filters = $this->filtersExtractor->extractFiltersFromQuery(
$request->getQuery());
96 $alias = $this->aliasResolver->getAlias($filter);
97 if (!array_key_exists(
$alias, $appliedFilters)) {
98 $isApplied = $this->filterStrategy->apply($filter,
$select);
100 $appliedFilters[
$alias] =
true;
119 return $this->aliasResolver->getAlias($filter);
getMappingAlias(FilterInterface $filter)
addTables(Select $select, RequestInterface $request)
__construct(AppResource $resource, StoreManagerInterface $storeManager, CollectionFactory $attributeCollectionFactory, EavConfig $eavConfig=null, ScopeConfigInterface $scopeConfig=null, FilterStrategyInterface $filterStrategy=null, AliasResolver $aliasResolver=null, FiltersExtractor $filtersExtractor=null)