nulib/php/src/file/csv/CsvBuilder.php
2024-11-29 19:29:35 +04:00

35 lines
857 B
PHP

<?php
namespace nulib\file\csv;
use nulib\file\tab\AbstractBuilder;
use nulib\file\tab\TAbstractBuilder;
use nulib\web\http;
/**
* Class CsvBuilder: construction d'un fichier CSV, pour envoi à l'utilisateur
*/
class CsvBuilder extends AbstractBuilder {
use TAbstractBuilder;
function __construct(?string $output, ?array $params=null) {
$csvFlavour = $params["csv_flavour"] ?? null;
$this->csvFlavour = csv_flavours::verifix($csvFlavour);
parent::__construct($output, $params);
}
protected function _write(array $row, ?array $colStyles =null, ?array $rowStyle=null): void {
$this->fputcsv($row);
}
function _sendContentType(): void {
http::content_type("text/csv");
}
protected function _checkOk(): bool {
$size = $this->ftell();
if ($size === 0) return false;
$this->rewind();
return true;
}
}