![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/amasty/shopby/Model/Search/ |
<?php declare(strict_types=1); /** * @author Amasty Team * @copyright Copyright (c) Amasty (https://www.amasty.com) * @package Improved Layered Navigation Base for Magento 2 */ namespace Amasty\Shopby\Model\Search; use Magento\Framework\Api\Filter; use Magento\Framework\Api\FilterBuilder; use Magento\Framework\Api\Search\SearchCriteriaBuilderFactory; class SearchCriteriaBuilderProvider { /** * @var SearchCriteriaBuilderFactory */ private $searchCriteriaBuilderFactory; /** * @var FilterBuilder */ private $filterBuilder; /** * @var array */ private $filters = []; public function __construct( SearchCriteriaBuilderFactory $searchCriteriaBuilderFactory, FilterBuilder $filterBuilder ) { $this->searchCriteriaBuilderFactory = $searchCriteriaBuilderFactory; $this->filterBuilder = $filterBuilder; } /** * @param string $field * @param string|array $value * @return $this */ public function addFilter(string $field, $value): SearchCriteriaBuilderProvider { $this->filters[$field] = $value; return $this; } public function removeFilter(string $field): void { unset($this->filters[$field]); } public function create(): \Magento\Framework\Api\Search\SearchCriteriaBuilder { $searchCriteriaBuilder = $this->searchCriteriaBuilderFactory->create(); foreach ($this->filters as $field => $value) { $this->filterBuilder->setField($field); $this->filterBuilder->setValue($value); $searchCriteriaBuilder->addFilter($this->filterBuilder->create()); } return $searchCriteriaBuilder; } }