SleepableClockInterface
extends
ClockInterface
in
Часы, умеющие «спать» до нужного момента.
Продакшн-реализация блокирует процесс на реальное время, тестовая (MockClock) — мгновенно сдвигает виртуальное время. Это позволяет тестировать retry/backoff-логику без реальных задержек.
Table of Contents
Methods
- freeze() : AdjustableClockInterface
- Снимок текущего момента: замороженные часы с управляемым временем.
- microtime() : float
- Текущий момент в секундах с дробной микросекундной частью.
- sleep() : void
- Приостановить выполнение на заданное число секунд.
- sleepUntil() : void
- Приостановить выполнение до указанного момента.
- timestamp() : int
- Текущий unix-timestamp в секундах.
- timezone() : DateTimeZone
- Таймзона, в которой часы отдают время.
- withTimezone() : static
- Копия часов с другой таймзоной; исходный объект не меняется.
Methods
freeze()
Снимок текущего момента: замороженные часы с управляемым временем.
public
freeze() : AdjustableClockInterface
Полезно зафиксировать «сейчас» любых часов — системных, монотонных, декорированных — и дальше детерминированно сдвигать его в тесте.
Return values
AdjustableClockInterface —Снимок текущего момента: замороженные часы с управляемым временем
microtime()
Текущий момент в секундах с дробной микросекундной частью.
public
microtime() : float
Return values
float —секунды с эпохи Unix (аналог microtime(true))
sleep()
Приостановить выполнение на заданное число секунд.
public
sleep(float $seconds) : void
Parameters
- $seconds : float
-
длительность паузы; отрицательные значения запрещены
Tags
sleepUntil()
Приостановить выполнение до указанного момента.
public
sleepUntil(DateTimeImmutable $moment) : void
Если момент уже наступил — вернуться немедленно без ошибки.
Parameters
- $moment : DateTimeImmutable
-
целевой момент пробуждения
timestamp()
Текущий unix-timestamp в секундах.
public
timestamp() : int
Дешевле, чем now()->getTimestamp(): реализациям разрешено не создавать
объект даты вовсе.
Return values
int —секунды с 1970-01-01T00:00:00Z
timezone()
Таймзона, в которой часы отдают время.
public
timezone() : DateTimeZone
Return values
DateTimeZone —Таймзона, в которой часы отдают время
withTimezone()
Копия часов с другой таймзоной; исходный объект не меняется.
public
withTimezone(DateTimeZone|non-empty-string $timezone) : static
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны (например,
Europe/Moscow)