Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SelectContainer.php
Go to the documentation of this file.
1 <?php
8 
11 
19 {
23  private $nonCustomAttributesFilters;
24 
28  private $customAttributesFilters;
29 
33  private $visibilityFilter;
34 
38  private $isFullTextSearchRequired;
39 
43  private $isShowOutOfStockEnabled;
44 
48  private $select;
49 
53  private $usedIndex;
54 
58  private $dimensions;
59 
70  public function __construct(
71  Select $select,
72  array $nonCustomAttributesFilters,
73  array $customAttributesFilters,
74  array $dimensions,
75  bool $isFullTextSearchRequired,
76  bool $isShowOutOfStockEnabled,
77  $usedIndex,
78  FilterInterface $visibilityFilter = null
79  ) {
80  $this->nonCustomAttributesFilters = $nonCustomAttributesFilters;
81  $this->customAttributesFilters = $customAttributesFilters;
82  $this->visibilityFilter = $visibilityFilter;
83  $this->isFullTextSearchRequired = $isFullTextSearchRequired;
84  $this->isShowOutOfStockEnabled = $isShowOutOfStockEnabled;
85  $this->select = $select;
86  $this->usedIndex = $usedIndex;
87  $this->dimensions = $dimensions;
88  }
89 
94  {
95  return $this->nonCustomAttributesFilters;
96  }
97 
101  public function getCustomAttributesFilters()
102  {
103  return $this->customAttributesFilters;
104  }
105 
109  public function hasCustomAttributesFilters()
110  {
111  return count($this->customAttributesFilters) > 0;
112  }
113 
117  public function hasVisibilityFilter()
118  {
119  return $this->visibilityFilter !== null;
120  }
121 
128  public function getVisibilityFilter()
129  {
130  return $this->visibilityFilter === null ? null : clone $this->visibilityFilter;
131  }
132 
136  public function isFullTextSearchRequired()
137  {
138  return $this->isFullTextSearchRequired;
139  }
140 
144  public function isShowOutOfStockEnabled()
145  {
146  return $this->isShowOutOfStockEnabled;
147  }
148 
152  public function getUsedIndex()
153  {
154  return $this->usedIndex;
155  }
156 
160  public function getDimensions()
161  {
162  return $this->dimensions;
163  }
164 
171  public function getSelect()
172  {
173  return clone $this->select;
174  }
175 
183  public function updateSelect(Select $select)
184  {
185  $data = [
186  clone $select,
187  $this->nonCustomAttributesFilters,
188  $this->customAttributesFilters,
189  $this->dimensions,
190  $this->isFullTextSearchRequired,
191  $this->isShowOutOfStockEnabled,
192  $this->usedIndex
193 
194  ];
195 
196  if ($this->visibilityFilter !== null) {
197  $data[] = clone $this->visibilityFilter;
198  }
199 
200  return new self(...$data);
201  }
202 }
__construct(Select $select, array $nonCustomAttributesFilters, array $customAttributesFilters, array $dimensions, bool $isFullTextSearchRequired, bool $isShowOutOfStockEnabled, $usedIndex, FilterInterface $visibilityFilter=null)