![]() 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/DB/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Analytics\ReportXml\DB; use Magento\Analytics\ReportXml\ConnectionFactory; use Magento\Analytics\ReportXml\QueryFactory; use Magento\Framework\Api\SearchCriteriaInterface; /** * Validates report definitions by doing query to storage with limit 0 */ class ReportValidator { /** * @var ConnectionFactory */ private $connectionFactory; /** * @var QueryFactory */ private $queryFactory; /** * ReportValidator constructor. * * Needs connection and query factory for do a query * * @param ConnectionFactory $connectionFactory * @param QueryFactory $queryFactory */ public function __construct(ConnectionFactory $connectionFactory, QueryFactory $queryFactory) { $this->connectionFactory = $connectionFactory; $this->queryFactory = $queryFactory; } /** * Tries to do query for provided report with limit 0 and return error information if it failed * * @param string $name * @param SearchCriteriaInterface $criteria * @return array * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function validate($name, SearchCriteriaInterface $criteria = null) { $query = $this->queryFactory->create($name); $connection = $this->connectionFactory->getConnection($query->getConnectionName()); $query->getSelect()->limit(0); try { $connection->query($query->getSelect()); } catch (\Zend_Db_Statement_Exception $e) { return [$name, $e->getMessage()]; } return []; } }