![]() 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-analytics/ReportXml/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Analytics\ReportXml; use Magento\Framework\Api\SearchCriteria; /** * Providers for reports data */ class ReportProvider { /** * @var QueryFactory */ private $queryFactory; /** * @var ConnectionFactory */ private $connectionFactory; /** * @var IteratorFactory */ private $iteratorFactory; /** * ReportProvider constructor. * * @param QueryFactory $queryFactory * @param ConnectionFactory $connectionFactory * @param IteratorFactory $iteratorFactory */ public function __construct( QueryFactory $queryFactory, ConnectionFactory $connectionFactory, IteratorFactory $iteratorFactory ) { $this->queryFactory = $queryFactory; $this->connectionFactory = $connectionFactory; $this->iteratorFactory = $iteratorFactory; } /** * Returns custom iterator name for report * Null for default * * @param Query $query * @return string|null */ private function getIteratorName(Query $query) { $config = $query->getConfig(); return $config['iterator'] ?? null; } /** * Returns report data by name and criteria * * @param string $name * @return \IteratorIterator */ public function getReport($name) { $query = $this->queryFactory->create($name); $connection = $this->connectionFactory->getConnection($query->getConnectionName()); $statement = $connection->query($query->getSelect()); return $this->iteratorFactory->create($statement, $this->getIteratorName($query)); } }