Decouples applications from the system clock
See the codeSymfony Clock decouples applications from the system clock.
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();
This package is looking for a backer.
Help Symfony by sponsoring its development!
660 followers · starred Sep 2024
327 followers · starred Dec 2023
389 followers · starred Jun 2024
432 followers · starred Jul 2022
Decouples applications from the system clock
See the codeSymfony Clock decouples applications from the system clock.
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();
This package is looking for a backer.
Help Symfony by sponsoring its development!
660 followers · starred Sep 2024
327 followers · starred Dec 2023
389 followers · starred Jun 2024
432 followers · starred Jul 2022