CloudCastle Clock API

MockClock
in package
implements AdjustableClockInterface, SleepableClockInterface uses AdjustsTimeTrait

FinalYes

Тестовые часы с виртуальным сном.

Ведут себя как 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
throws
InvalidClockValueException

при отрицательных секундах

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
throws
InvalidClockValueException

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

Return values
self

fromNow()

Виртуальные часы, стартующие с текущего системного момента.

public static fromNow() : self
Return values
self

fromUtcNow()

Виртуальные часы, стартующие с текущего момента в UTC.

public static fromUtcNow() : self
Return values
self

microtime()

Виртуальный момент в секундах с дробной микросекундной частью.

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
throws
InvalidClockValueException

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

Attributes
#[Override]

now()

Текущий виртуальный момент.

public now() : DateTimeImmutable
Attributes
#[Override]
Return values
DateTimeImmutable —

Текущий виртуальный момент

rewind()

Сдвинуть время назад на интервал или число секунд.

public rewind(DateInterval|float $duration) : void
Parameters
$duration : DateInterval|float

интервал либо неотрицательные секунды

Tags
throws
InvalidClockValueException

при отрицательных секундах

Attributes
#[Override]

setTo()

Выставить часы точно на указанный момент; таймзона берётся из него же.

public setTo(DateTimeImmutable $moment) : void
Parameters
$moment : DateTimeImmutable

целевой момент времени

Attributes
#[Override]

sleep()

Виртуальный сон: мгновенно сдвигает время вперёд, процесс не блокируется.

public sleep(float $seconds) : void

Отрицательные длительности отклоняет конвертация длительности.

Parameters
$seconds : float

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

Tags
throws
InvalidClockValueException

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

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
throws
InvalidClockValueException

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

Attributes
#[Override]
Return values
static
On this page

Search results