![]() 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/magento/module-advanced-search/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\AdvancedSearch\Model; use Magento\Framework\ObjectManagerInterface; use Magento\Framework\Search\EngineResolverInterface; use Magento\Search\Model\QueryInterface; class SuggestedQueries implements SuggestedQueriesInterface { /** * @var EngineResolverInterface */ private $engineResolver; /** * @var ObjectManagerInterface */ private $objectManager; /** * Array of SuggestedQueriesInterface class names. * * @var array */ private $data; /** * @var SuggestedQueriesInterface */ private $dataProvider; /** * SuggestedQueries constructor. * * @param EngineResolverInterface $engineResolver * @param ObjectManagerInterface $objectManager * @param array $data */ public function __construct( EngineResolverInterface $engineResolver, ObjectManagerInterface $objectManager, array $data ) { $this->engineResolver = $engineResolver; $this->objectManager = $objectManager; $this->data = $data; } /** * {@inheritdoc} */ public function isResultsCountEnabled() { return $this->getDataProvider()->isResultsCountEnabled(); } /** * {@inheritdoc} */ public function getItems(QueryInterface $query) { return $this->getDataProvider()->getItems($query); } /** * Returns DataProvider for SuggestedQueries * * @return SuggestedQueriesInterface|SuggestedQueriesInterface[] * @throws \Exception */ private function getDataProvider() { if (empty($this->dataProvider)) { $currentEngine = $this->engineResolver->getCurrentSearchEngine(); $this->dataProvider = $this->objectManager->create($this->data[$currentEngine]); if (!$this->dataProvider instanceof SuggestedQueriesInterface) { throw new \InvalidArgumentException( 'Data provider must implement \Magento\AdvancedSearch\Model\SuggestedQueriesInterface' ); } } return $this->dataProvider; } }