From 6cb66688ec99151efafcb4a5efbd79cb36d56dcc Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Wed, 12 Jun 2024 20:42:15 +0400 Subject: [PATCH] modifs.mineures sans commentaires --- src/file/csv/AbstractBuilder.php | 5 ++++- src/file/csv/TAbstractBuilder.php | 23 ++++++++++++++++++++--- src/file/csv/TAbstractReader.php | 2 +- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/file/csv/AbstractBuilder.php b/src/file/csv/AbstractBuilder.php index 847312d..c6fe911 100644 --- a/src/file/csv/AbstractBuilder.php +++ b/src/file/csv/AbstractBuilder.php @@ -4,6 +4,7 @@ namespace nur\sery\file\csv; use DateTimeInterface; use nur\sery\cl; use nur\sery\file\TempStream; +use nur\sery\os\path; use nur\sery\php\func; use nur\sery\php\time\DateTime; use nur\sery\web\http; @@ -118,7 +119,9 @@ abstract class AbstractBuilder extends TempStream { if ($this->sentHeaders) return; $this->_sendContentType(); $output = $this->output; - if ($output !== null) http::download_as($output); + if ($output !== null) { + http::download_as(path::filename($output)); + } $this->sentHeaders = true; } diff --git a/src/file/csv/TAbstractBuilder.php b/src/file/csv/TAbstractBuilder.php index 8e2db7a..6e16ad2 100644 --- a/src/file/csv/TAbstractBuilder.php +++ b/src/file/csv/TAbstractBuilder.php @@ -1,13 +1,30 @@ isExt(".csv")) $class = CsvBuilder::class; + else $class = static::class; + return $class($builder->name); + } + if (is_string($builder)) $builder = ["output" => $builder]; + if (!is_array($builder)) { + throw ValueException::invalid_type($builder, self::class); + } + $input = $builder["output"] ?? null; + if (is_string($input) && path::ext($input) === ".csv") { + $class = CsvBuilder::class; + } + if ($class === null) $class = static::class; + return $class($builder); } } diff --git a/src/file/csv/TAbstractReader.php b/src/file/csv/TAbstractReader.php index 40345fb..f340bac 100644 --- a/src/file/csv/TAbstractReader.php +++ b/src/file/csv/TAbstractReader.php @@ -6,7 +6,7 @@ use nur\sery\os\path; use nur\sery\ValueException; trait TAbstractReader { - /** @param Upload|string|array */ + /** @param Upload|string|array $reader */ static function with($reader): self { if ($reader instanceof self) return $reader; $class = null;