CloudCastle Clock API

SleepableClockInterface extends ClockInterface

Часы, умеющие «спать» до нужного момента.

Продакшн-реализация блокирует процесс на реальное время, тестовая (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
throws
InvalidClockValueException

при отрицательной длительности

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)

Tags
throws
InvalidClockValueException

если идентификатор таймзоны не распознан

Return values
static
On this page

Search results