tomaskarlik / csvresponse2
为 Nette 提供动态数据源的 CSV 响应
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-09-25 16:09:14 UTC
README
为 Nette 框架 提供的 CSV 响应
- gzip 编码
- 动态数据源
下载包
composer require tomaskarlik/csvresponse2
示例数据源
<?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++]; } }
展示者
public function actionExportCsv(int $id): void { $response = new CsvResponse($this->csvExporter, sprintf('export-%d.csv', $id)); $response->addColumnCallback('score', [$this, 'myScoreFormatCallback']); $this->sendResponse($response); }