eventsauce/clock

从时钟消耗时间

1.2.1 2024-03-04 20:22 UTC

This package is auto-updated.

Last update: 2024-09-04 21:34:02 UTC


README

这是EventSauce Clock组件,它提供了一种直接消耗时间的方式。使用时钟可以使您的代码更容易测试。

安装

composer require eventsauce/clock

用法

此包提供了两个对EventSauce\Clock\Clock接口的实现。

在生产配置中,使用EventSauce\Clock\SystemClock实现。

<?php

use EventSauce\Clock\SystemClock;

$clock = new SystemClock(new DateTimeZone('UTC') /* timezone optional */);

$dateTimeImmutable = $clock->now();
$timezone = $clock->timeZone();

在测试配置中,使用EventSauce\Clock\TestClock实现。

<?php

use EventSauce\Clock\TestClock;

$testClock = new TestClock();
$dateTimeImmutable = $testClock->now();
$timezone = $testClock->timeZone();

// move the clock forward
$testClock->moveForward(DateInterval::createFromDateString('1 day'));

// Skip to system "now"
$testClock->tick();

// Fixate the clock to a specific date and time
$testClock->fixate('1987-11-24 18:33:10');