예제 #1
0
 /**
  * @dataProvider arrayDataProvider
  */
 public function testArrayData(array $testData, $delimiter, $expectedResult)
 {
     $objReader = new \Haste\IO\Reader\ArrayReader($testData);
     $objWriter = new \Haste\IO\Writer\CsvFileWriter($this->tempFile);
     $objWriter->setDelimiter($delimiter);
     $objWriter->writeFrom($objReader);
     $this->assertEquals($expectedResult, file_get_contents(TL_ROOT . '/' . $this->tempFile));
 }
예제 #2
0
 /**
  * Exports a given set of data row ids using a given configuration.
  *
  * @param \Database\Result $config
  * @param array|null       $ids
  *
  * @throws ExportFailedException
  */
 public function export($config, $ids = null)
 {
     $dataCollector = $this->prepareDefaultDataCollector($config, $ids);
     $reader = new ArrayReader($dataCollector->getExportData());
     $writer = new CsvFileWriter('system/tmp/' . File::getName($config));
     // Add header fields
     if ($config->headerFields) {
         $reader->setHeaderFields($this->prepareDefaultHeaderFields($config, $dataCollector));
         $writer->enableHeaderFields();
     }
     $row = new Row($config, $this->prepareDefaultExportConfig($config, $dataCollector));
     $writer->setRowCallback(function ($data) use($row) {
         return $row->compile($data);
     });
     $this->handleDefaultExportResult($writer->writeFrom($reader));
     $this->updateLastRun($config);
     $objFile = new \File($writer->getFilename());
     $objFile->sendToBrowser();
 }