From fef8a81309194a8bbbef04f1d12b8d69531ac923 Mon Sep 17 00:00:00 2001 From: Rob Treacy Date: Wed, 6 Nov 2019 14:13:58 +0000 Subject: [PATCH] Use DateTime::createFromImmutable if available (#7) * Use DateTime::createFromImmutable if available * Use new \DateTime in SystemClock. Assert return value Co-authored-by: Marko Kunic * Please PHPStan * Use FQNS * Remove additional space --- lib/FixedClock.php | 12 ++++++++---- lib/SystemClock.php | 6 +----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/FixedClock.php b/lib/FixedClock.php index 8840db39..18598c24 100644 --- a/lib/FixedClock.php +++ b/lib/FixedClock.php @@ -28,10 +28,14 @@ public function now(): \DateTimeImmutable public function nowMutable(): \DateTime { - // @TODO Use \DateTime::createFromImmutable when PHP version is >=7.3 - $instance = \DateTime::createFromFormat(self::ISO8601_MICROSECONDS_FORMAT, $this->now->format(self::ISO8601_MICROSECONDS_FORMAT)); - \assert($instance instanceof \DateTime); + $nowImmutable = $this->now(); - return $instance; + $nowMutable = \PHP_VERSION_ID >= 70300 + ? \DateTime::createFromImmutable($nowImmutable) + : \DateTime::createFromFormat(self::ISO8601_MICROSECONDS_FORMAT, $nowImmutable->format(self::ISO8601_MICROSECONDS_FORMAT)); + + \assert($nowMutable instanceof \DateTime); + + return $nowMutable; } } diff --git a/lib/SystemClock.php b/lib/SystemClock.php index 4324cdcc..70408e9a 100644 --- a/lib/SystemClock.php +++ b/lib/SystemClock.php @@ -30,10 +30,6 @@ public function now(): \DateTimeImmutable public function nowMutable(): \DateTime { - // @TODO Use \DateTime::createFromImmutable when PHP version is >=7.3 - $instance = \DateTime::createFromFormat(self::ISO8601_MICROSECONDS_FORMAT, $this->now()->format(self::ISO8601_MICROSECONDS_FORMAT)); - \assert($instance instanceof \DateTime); - - return $instance; + return new \DateTime('now', $this->timeZone); } }