QueueClock
in package
implements
ClockInterface
Часы-очередь: `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
Attributes
- #[Override]
Return values
FrozenClock —Снимок головы очереди в замороженные часы
from()
Часы-очередь из моментов, заданных объектами или строками.
public
static from(DateTimeImmutable|non-empty-string ...$moments) : self
Parameters
- $moments : DateTimeImmutable|non-empty-string
-
моменты в порядке выдачи
Tags
Return values
self —Часы-очередь из моментов, заданных объектами или строками
isEmpty()
Пуста ли очередь.
public
isEmpty() : bool
Return values
bool —Пуста ли очередь
microtime()
Голова очереди в секундах с микросекундами; очередь не потребляется.
public
microtime() : float
Tags
Attributes
- #[Override]
Return values
float —Голова очереди в секундах с микросекундами
now()
Выдать голову очереди и потребить её.
public
now() : DateTimeImmutable
Tags
Attributes
- #[Override]
Return values
DateTimeImmutable —Голова очереди моментов
peek()
Голова очереди без потребления.
public
peek() : DateTimeImmutable
Tags
Return values
DateTimeImmutable —Голова очереди без потребления
push()
Добавить моменты в конец очереди.
public
push(DateTimeImmutable|non-empty-string ...$moments) : void
Parameters
- $moments : DateTimeImmutable|non-empty-string
-
моменты в порядке выдачи
Tags
remaining()
Число оставшихся моментов в очереди.
public
remaining() : int
Return values
int —Число оставшихся моментов в очереди
timestamp()
Unix-timestamp головы очереди; очередь не потребляется.
public
timestamp() : int
Tags
Attributes
- #[Override]
Return values
int —Unix-timestamp головы очереди
timezone()
Таймзона головы очереди; очередь не потребляется.
public
timezone() : DateTimeZone
Tags
Attributes
- #[Override]
Return values
DateTimeZone —Таймзона головы очереди
withTimezone()
Копия часов с оставшимися моментами, переведёнными в другую таймзону.
public
withTimezone(DateTimeZone|non-empty-string $timezone) : static
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны
Tags
Attributes
- #[Override]