.. | ||
Resources | ||
Test | ||
CHANGELOG.md | ||
Clock.php | ||
ClockAwareTrait.php | ||
ClockInterface.php | ||
composer.json | ||
DatePoint.php | ||
LICENSE | ||
MockClock.php | ||
MonotonicClock.php | ||
NativeClock.php | ||
README.md |
Clock Component
Symfony Clock decouples applications from the system clock.
Getting Started
composer require symfony/clock
use Symfony\Component\Clock\NativeClock;
use Symfony\Component\Clock\ClockInterface;
class MyClockSensitiveClass
{
public function __construct(
private ClockInterface $clock,
) {
// Only if you need to force a timezone:
//$this->clock = $clock->withTimeZone('UTC');
}
public function doSomething()
{
$now = $this->clock->now();
// [...] do something with $now, which is a \DateTimeImmutable object
$this->clock->sleep(2.5); // Pause execution for 2.5 seconds
}
}
$clock = new NativeClock();
$service = new MyClockSensitiveClass($clock);
$service->doSomething();