itflow/plugins/php-imap/vendor/symfony/clock
johnnyq 2edd39c16d Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
..
Resources Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
Test Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
CHANGELOG.md Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
Clock.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
ClockAwareTrait.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
ClockInterface.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
DatePoint.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
LICENSE Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
MockClock.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
MonotonicClock.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
NativeClock.php Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
README.md Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00
composer.json Remove the vendor directory in .gitignore as these dependencies are needed for php-imap 2024-06-12 16:15:10 -04:00

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

Resources