From 6cbd745d8ad980e8ff9efb929dafe5f598ea9b0c Mon Sep 17 00:00:00 2001 From: Marat Salakhov Date: Wed, 20 Dec 2023 23:21:24 +0500 Subject: [PATCH] Added settings example in readme file. Changed type in dateTime serialization and deserialization methods --- README.md | 2 ++ src/Types/TypeSerializer.php | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 6491ebf..a634eb6 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,8 @@ open_api_server: type: yaml # Specification format, either yaml or json. If omitted, the specification file extension will be used. name_space: PetStore # Namespace for generated DTOs and Interfaces media_type: 'application/json' # media type from the specification files to use for generating request and response DTOs + #date_time_class: '\Carbon\CarbonImmutable' # FQCN which implements \DateTimeInterface. + ## If set up, then generated DTOs will return instances of this class in DateTime parameters ``` Add your OpenApi specifications to the application routes configuration file using standard `resource` keyword diff --git a/src/Types/TypeSerializer.php b/src/Types/TypeSerializer.php index 288f437..a78f702 100644 --- a/src/Types/TypeSerializer.php +++ b/src/Types/TypeSerializer.php @@ -4,9 +4,9 @@ namespace OnMoon\OpenApiServerBundle\Types; -use DateTime; use DateTimeInterface; use Exception; +use Safe\DateTime; use Safe\Exceptions\DatetimeException; use function base64_encode; @@ -28,7 +28,7 @@ class TypeSerializer public static function deserializeDate(string $date, ?string $dateTimeClass = null): DateTimeInterface { if ($dateTimeClass === null) { - return \Safe\DateTime::createFromFormat(self::DATE_FORMAT, $date); + return DateTime::createFromFormat(self::DATE_FORMAT, $date); } if (method_exists($dateTimeClass, 'createFromFormat') === false) { @@ -50,7 +50,7 @@ public static function deserializeDate(string $date, ?string $dateTimeClass = nu return $deserializedDate; } - public static function serializeDate(DateTime $date): string + public static function serializeDate(DateTimeInterface $date): string { return $date->format(self::DATE_FORMAT); } @@ -63,14 +63,14 @@ public static function serializeDate(DateTime $date): string public static function deserializeDateTime(string $date, ?string $dateTimeClass = null): DateTimeInterface { if ($dateTimeClass === null) { - return new \Safe\DateTime($date); + return new DateTime($date); } /** @psalm-suppress InvalidStringClass */ return new $dateTimeClass($date); } - public static function serializeDateTime(DateTime $date): string + public static function serializeDateTime(DateTimeInterface $date): string { return $date->format(self::DATETIME_FORMAT); }