CloudCastle Clock API

QueueClock
in package
implements ClockInterface

FinalYes

Часы-очередь: `now()` выдаёт заранее заданные моменты по одному.

Сценарий теста задаёт точную последовательность показаний; каждый now() потребляет голову очереди. Исчерпанная очередь — типизированное исключение: лишний вызов now() в тестируемом коде становится виден сразу. Нечитающие методы (peek(), timestamp(), microtime(), timezone()) смотрят на голову очереди, не потребляя её.

Table of Contents

Interfaces

ClockInterface
Расширенный контракт часов поверх PSR-20.

Methods

__construct()  : mixed
Запустить часы с очередью моментов.
freeze()  : FrozenClock
Снимок головы очереди в замороженные часы; очередь не потребляется.
from()  : self
Часы-очередь из моментов, заданных объектами или строками.
isEmpty()  : bool
Пуста ли очередь.
microtime()  : float
Голова очереди в секундах с микросекундами; очередь не потребляется.
now()  : DateTimeImmutable
Выдать голову очереди и потребить её.
peek()  : DateTimeImmutable
Голова очереди без потребления.
push()  : void
Добавить моменты в конец очереди.
remaining()  : int
Число оставшихся моментов в очереди.
timestamp()  : int
Unix-timestamp головы очереди; очередь не потребляется.
timezone()  : DateTimeZone
Таймзона головы очереди; очередь не потребляется.
withTimezone()  : static
Копия часов с оставшимися моментами, переведёнными в другую таймзону.

Methods

__construct()

Запустить часы с очередью моментов.

public __construct(DateTimeImmutable ...$moments) : mixed
Parameters
$moments : DateTimeImmutable

моменты в порядке выдачи

freeze()

Снимок головы очереди в замороженные часы; очередь не потребляется.

public freeze() : FrozenClock
Tags
throws
InvalidClockValueException

если очередь пуста

Attributes
#[Override]
Return values
FrozenClock —

Снимок головы очереди в замороженные часы

from()

Часы-очередь из моментов, заданных объектами или строками.

public static from(DateTimeImmutable|non-empty-string ...$moments) : self
Parameters
$moments : DateTimeImmutable|non-empty-string

моменты в порядке выдачи

Tags
throws
InvalidClockValueException

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

Return values
self —

Часы-очередь из моментов, заданных объектами или строками

isEmpty()

Пуста ли очередь.

public isEmpty() : bool
Return values
bool —

Пуста ли очередь

microtime()

Голова очереди в секундах с микросекундами; очередь не потребляется.

public microtime() : float
Tags
throws
InvalidClockValueException

если очередь пуста

Attributes
#[Override]
Return values
float —

Голова очереди в секундах с микросекундами

now()

Выдать голову очереди и потребить её.

public now() : DateTimeImmutable
Tags
throws
InvalidClockValueException

если очередь пуста

Attributes
#[Override]
Return values
DateTimeImmutable —

Голова очереди моментов

peek()

Голова очереди без потребления.

public peek() : DateTimeImmutable
Tags
throws
InvalidClockValueException

если очередь пуста

Return values
DateTimeImmutable —

Голова очереди без потребления

push()

Добавить моменты в конец очереди.

public push(DateTimeImmutable|non-empty-string ...$moments) : void
Parameters
$moments : DateTimeImmutable|non-empty-string

моменты в порядке выдачи

Tags
throws
InvalidClockValueException

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

remaining()

Число оставшихся моментов в очереди.

public remaining() : int
Return values
int —

Число оставшихся моментов в очереди

timestamp()

Unix-timestamp головы очереди; очередь не потребляется.

public timestamp() : int
Tags
throws
InvalidClockValueException

если очередь пуста

Attributes
#[Override]
Return values
int —

Unix-timestamp головы очереди

timezone()

Таймзона головы очереди; очередь не потребляется.

public timezone() : DateTimeZone
Tags
throws
InvalidClockValueException

если очередь пуста

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