* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Core\SqlManager\Exporter; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\SqlRequestExecutionResult; use PrestaShop\PrestaShop\Core\Domain\SqlManagement\ValueObject\SqlRequestId; use PrestaShop\PrestaShop\Core\Export\Data\ExportableData; use PrestaShop\PrestaShop\Core\Export\FileWriter\FileWriterInterface; /** * Class SqlRequestExporter exports SqlRequest query execution result into CSV file under export directory. */ final class SqlRequestExporter implements SqlRequestExporterInterface { /** * @var FileWriterInterface */ private $csvFileWriter; /** * @param FileWriterInterface $csvFileWriter */ public function __construct(FileWriterInterface $csvFileWriter) { $this->csvFileWriter = $csvFileWriter; } /** * {@inheritdoc} */ public function exportToFile(SqlRequestId $sqlRequestId, SqlRequestExecutionResult $result) { $exportData = new ExportableData( $result->getColumns(), $result->getRows() ); $exportFileName = sprintf('request_sql_%s.csv', $sqlRequestId->getValue()); return $this->csvFileWriter->write($exportFileName, $exportData); } }