33 lines
595 B
PHP
33 lines
595 B
PHP
|
<?php
|
||
|
declare(strict_types=1);
|
||
|
|
||
|
namespace Lcobucci\Clock;
|
||
|
|
||
|
use DateTimeImmutable;
|
||
|
use DateTimeZone;
|
||
|
|
||
|
final class FrozenClock implements Clock
|
||
|
{
|
||
|
private DateTimeImmutable $now;
|
||
|
|
||
|
public function __construct(DateTimeImmutable $now)
|
||
|
{
|
||
|
$this->now = $now;
|
||
|
}
|
||
|
|
||
|
public static function fromUTC(): self
|
||
|
{
|
||
|
return new self(new DateTimeImmutable('now', new DateTimeZone('UTC')));
|
||
|
}
|
||
|
|
||
|
public function setTo(DateTimeImmutable $now): void
|
||
|
{
|
||
|
$this->now = $now;
|
||
|
}
|
||
|
|
||
|
public function now(): DateTimeImmutable
|
||
|
{
|
||
|
return $this->now;
|
||
|
}
|
||
|
}
|