Exemple #1
0
 /**
  * @param Fields $fields
  * @param Listing $listing
  * @param CsvCell $csvCellRenderer
  * @return void
  */
 public function renderWithGenerator(Fields $fields, Listing $listing, CsvCell $csvCellRenderer)
 {
     // Output CSV data
     $outputHandle = fopen('php://output', 'w');
     // Get the visible component fields
     $fields = $fields->getVisibleFields();
     // Render header
     fputcsv($outputHandle, $this->renderHeader($fields, $csvCellRenderer));
     // Render content
     $rowIndex = 0;
     foreach ($listing->fetchDataWithGenerator($fields) as $row) {
         $csvRow = [];
         $columnIndex = 0;
         foreach ($fields as $field) {
             $csvRow[] = $csvCellRenderer->getContentRenderer()->render($field, $row, $rowIndex, $columnIndex);
             $columnIndex++;
         }
         fputcsv($outputHandle, $csvRow);
         $rowIndex++;
     }
     // Close output handle
     fclose($outputHandle);
 }