| Current Path : /srv/web/sites/trentinoplant.it/httpdocs/vendor/magento/module-analytics/ReportXml/ |
| Current File : /srv/web/sites/trentinoplant.it/httpdocs/vendor/magento/module-analytics/ReportXml/Query.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Analytics\ReportXml;
use Magento\Framework\DB\Select;
/**
* Query object, contains SQL statement, information about connection, query arguments
*/
class Query implements \JsonSerializable
{
/**
* @var Select
*/
private $select;
/**
* @var \Magento\Analytics\ReportXml\SelectHydrator
*/
private $selectHydrator;
/**
* @var string
*/
private $connectionName;
/**
* @var array
*/
private $config;
/**
* Query constructor.
*
* @param Select $select
* @param SelectHydrator $selectHydrator
* @param string $connectionName
* @param array $config
*/
public function __construct(
Select $select,
SelectHydrator $selectHydrator,
$connectionName,
$config
) {
$this->select = $select;
$this->connectionName = $connectionName;
$this->selectHydrator = $selectHydrator;
$this->config = $config;
}
/**
* Returns query select
*
* @return Select
*/
public function getSelect()
{
return $this->select;
}
/**
* Returns Connection name
*
* @return string
*/
public function getConnectionName()
{
return $this->connectionName;
}
/**
* Returns configuration
*
* @return array
*/
public function getConfig()
{
return $this->config;
}
/**
* @inheritDoc
*/
#[\ReturnTypeWillChange]
public function jsonSerialize()
{
return [
'connectionName' => $this->getConnectionName(),
'select_parts' => $this->selectHydrator->extract($this->getSelect()),
'config' => $this->getConfig()
];
}
}