From 46347b0278718bce99e26438ae6fbbb88db9f22e Mon Sep 17 00:00:00 2001 From: Eric Fortmeyer Date: Sun, 26 Mar 2023 23:15:08 -0500 Subject: [PATCH] feat(CsvFileStorage): create date time objects from date values --- src/CsvFileStorage.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/CsvFileStorage.php b/src/CsvFileStorage.php index a3fc6c1..d1d1eef 100644 --- a/src/CsvFileStorage.php +++ b/src/CsvFileStorage.php @@ -10,6 +10,7 @@ use Countable; use DateTime; use DateTimeImmutable; +use DateTimeInterface; use DomainException; use ReflectionNamedType; use ReflectionObject; @@ -244,10 +245,12 @@ private function storeObjLine(array $headers, array $line): void $reflectionProp = $reflectionObj->getProperty($propName); $propType = $reflectionProp->getType(); $obj->$propName = match (true) { - $propType instanceof ReflectionNamedType => match (strtolower($propType->getName())) { + $propType instanceof ReflectionNamedType => match ($propType->getName()) { "bool" => (bool) $propValue, "int" => (int) $propValue, "float" => (float) $propValue, + DateTimeImmutable::class => new DateTimeImmutable($propValue ?? "now"), // @codeCoverageIgnore + DateTime::class => new DateTime($propValue ?? "now"), // @codeCoverageIgnore default => $propValue, }, $propType instanceof ReflectionUnionType => match (true) {