MockClock
in package
implements
AdjustableClockInterface, SleepableClockInterface
uses
AdjustsTimeTrait
Тестовые часы с виртуальным сном.
Ведут себя как FrozenClock, но дополнительно реализуют
SleepableClockInterface: sleep() не блокирует процесс,
а мгновенно сдвигает виртуальное время. Код с retry/backoff
тестируется за миллисекунды вместо реальных задержек.
Table of Contents
Interfaces
- AdjustableClockInterface
- Часы с управляемым временем — для тестов и симуляций.
- SleepableClockInterface
- Часы, умеющие «спать» до нужного момента.
Methods
- __construct() : mixed
- Запустить виртуальные часы с указанного момента.
- advance() : void
- Сдвинуть время вперёд на интервал или число секунд.
- freeze() : FrozenClock
- Снимок текущего момента в замороженные часы.
- from() : self
- Виртуальные часы с момента, заданного объектом или строкой.
- fromNow() : self
- Виртуальные часы, стартующие с текущего системного момента.
- fromUtcNow() : self
- Виртуальные часы, стартующие с текущего момента в UTC.
- microtime() : float
- Виртуальный момент в секундах с дробной микросекундной частью.
- modify() : void
- Сдвинуть время строкой-модификатором формата `DateTimeImmutable::modify()`.
- now() : DateTimeImmutable
- Текущий виртуальный момент.
- rewind() : void
- Сдвинуть время назад на интервал или число секунд.
- setTo() : void
- Выставить часы точно на указанный момент; таймзона берётся из него же.
- sleep() : void
- Виртуальный сон: мгновенно сдвигает время вперёд, процесс не блокируется.
- sleepUntil() : void
- Виртуальный сон до момента.
- timestamp() : int
- Unix-timestamp виртуального момента в секундах.
- timezone() : DateTimeZone
- Таймзона часов.
- withTimezone() : static
- Копия часов с тем же моментом, переведённым в другую таймзону.
Methods
__construct()
Запустить виртуальные часы с указанного момента.
public
__construct(DateTimeImmutable $moment) : mixed
Parameters
- $moment : DateTimeImmutable
-
начальный момент виртуальных часов
advance()
Сдвинуть время вперёд на интервал или число секунд.
public
advance(DateInterval|float $duration) : void
Parameters
- $duration : DateInterval|float
-
интервал либо неотрицательные секунды
Tags
Attributes
- #[Override]
freeze()
Снимок текущего момента в замороженные часы.
public
freeze() : FrozenClock
Attributes
- #[Override]
Return values
FrozenClock —Снимок текущего момента в замороженные часы
from()
Виртуальные часы с момента, заданного объектом или строкой.
public
static from(DateTimeImmutable|non-empty-string $moment[, DateTimeZone|non-empty-string|null $timezone = null ]) : self
Parameters
- $moment : DateTimeImmutable|non-empty-string
-
стартовый момент
- $timezone : DateTimeZone|non-empty-string|null = null
-
таймзона разбора строки;
null— системная
Tags
Return values
selffromNow()
Виртуальные часы, стартующие с текущего системного момента.
public
static fromNow() : self
Return values
selffromUtcNow()
Виртуальные часы, стартующие с текущего момента в UTC.
public
static fromUtcNow() : self
Return values
selfmicrotime()
Виртуальный момент в секундах с дробной микросекундной частью.
public
microtime() : float
Attributes
- #[Override]
Return values
float —Виртуальный момент в секундах с дробной микросекундной частью
modify()
Сдвинуть время строкой-модификатором формата `DateTimeImmutable::modify()`.
public
modify(non-empty-string $modifier) : void
Parameters
- $modifier : non-empty-string
-
например
+1 day,-2 hours
Tags
Attributes
- #[Override]
now()
Текущий виртуальный момент.
public
now() : DateTimeImmutable
Attributes
- #[Override]
Return values
DateTimeImmutable —Текущий виртуальный момент
rewind()
Сдвинуть время назад на интервал или число секунд.
public
rewind(DateInterval|float $duration) : void
Parameters
- $duration : DateInterval|float
-
интервал либо неотрицательные секунды
Tags
Attributes
- #[Override]
setTo()
Выставить часы точно на указанный момент; таймзона берётся из него же.
public
setTo(DateTimeImmutable $moment) : void
Parameters
- $moment : DateTimeImmutable
-
целевой момент времени
Attributes
- #[Override]
sleep()
Виртуальный сон: мгновенно сдвигает время вперёд, процесс не блокируется.
public
sleep(float $seconds) : void
Отрицательные длительности отклоняет конвертация длительности.
Parameters
- $seconds : float
-
неотрицательная длительность
Tags
Attributes
- #[Override]
sleepUntil()
Виртуальный сон до момента.
public
sleepUntil(DateTimeImmutable $moment) : void
Прошедший или уже наступивший момент часы не сдвигает и не подменяет: текущий экземпляр момента сохраняется.
Parameters
- $moment : DateTimeImmutable
-
момент, до которого «спят» виртуальные часы
Attributes
- #[Override]
timestamp()
Unix-timestamp виртуального момента в секундах.
public
timestamp() : int
Attributes
- #[Override]
Return values
int —Unix-timestamp виртуального момента в секундах
timezone()
Таймзона часов.
public
timezone() : DateTimeZone
Attributes
- #[Override]
Return values
DateTimeZone —Таймзона часов
withTimezone()
Копия часов с тем же моментом, переведённым в другую таймзону.
public
withTimezone(DateTimeZone|non-empty-string $timezone) : static
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны
Tags
Attributes
- #[Override]