tomaskarlik / csvresponse2
CSV response for Nette with dynamic datasource
1.1.1
2018-05-10 13:46 UTC
Requires
- php: ^7.1
- nette/application: ^2.4
- nette/http: ^2.4
This package is not auto-updated.
Last update: 2024-11-20 16:54:20 UTC
README
CSV response for Nette Framework
- gzip encoding
- dynamic datasource
Download package
composer require tomaskarlik/csvresponse2
Sample datasource
<?php declare(strict_types = 1); namespace App\Model\Service\Feed; use TomasKarlik\CsvResponse2\IDataSource; class CsvExporter implements IDataSource { /** * @var array */ private $data = [ ['name' => 'honza', 'date' => '2016-01-01', 'score' => 1], ['name' => 'pepa', 'date' => '2016-01-02', 'score' => 2], ['name' => 'david', 'date' => '2016-01-03', 'score' => 3] ]; /** * @var int */ private $index = 0; public function next(): ?array { if ( ! isset($this->data[$this->index])) { return NULL; } return $this->data[$this->index++]; } }
Presenter
public function actionExportCsv(int $id): void { $response = new CsvResponse($this->csvExporter, sprintf('export-%d.csv', $id)); $response->addColumnCallback('score', [$this, 'myScoreFormatCallback']); $this->sendResponse($response); }