Skip to content

symfony/clock

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b81435f · Sep 25, 2024

History

73 Commits
Sep 25, 2024
Sep 26, 2023
Mar 20, 2024
Aug 6, 2024
Apr 18, 2024
Jul 28, 2022
Apr 17, 2024
Sep 26, 2023
Oct 19, 2023
Nov 25, 2022
Jun 20, 2024
Feb 2, 2023
Jun 20, 2024
Jan 23, 2024
Jan 23, 2024
Dec 8, 2023
Aug 17, 2023
Jul 28, 2022

Repository files navigation

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();

Resources