Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
SuggestedQueries.php
Go to the documentation of this file.
1 <?php
7 
11 
13 {
17  private $engineResolver;
18 
22  private $objectManager;
23 
29  private $data;
30 
34  private $dataProvider;
35 
43  public function __construct(
44  EngineResolverInterface $engineResolver,
45  ObjectManagerInterface $objectManager,
46  array $data
47  ) {
48  $this->engineResolver = $engineResolver;
49  $this->objectManager = $objectManager;
50  $this->data = $data;
51  }
52 
56  public function isResultsCountEnabled()
57  {
58  return $this->getDataProvider()->isResultsCountEnabled();
59  }
60 
64  public function getItems(QueryInterface $query)
65  {
66  return $this->getDataProvider()->getItems($query);
67  }
68 
75  private function getDataProvider()
76  {
77  if (empty($this->dataProvider)) {
78  $currentEngine = $this->engineResolver->getCurrentSearchEngine();
79  $this->dataProvider = $this->objectManager->create($this->data[$currentEngine]);
80  if (!$this->dataProvider instanceof SuggestedQueriesInterface) {
81  throw new \InvalidArgumentException(
82  'Data provider must implement \Magento\AdvancedSearch\Model\SuggestedQueriesInterface'
83  );
84  }
85  }
86  return $this->dataProvider;
87  }
88 }
$objectManager
Definition: bootstrap.php:17
__construct(EngineResolverInterface $engineResolver, ObjectManagerInterface $objectManager, array $data)