StepClock
in package
implements
ClockInterface
Шаговые часы: каждый вызов `now()` сдвигает время на фиксированный шаг.
Дают детерминированную возрастающую (или убывающую — шаг со знаком)
последовательность моментов без ручных advance(): удобно генерировать
серии событий в тестах. Продвигает время только now(); peek(),
timestamp() и microtime() показывают текущий момент без сдвига.
Table of Contents
Interfaces
- ClockInterface
- Расширенный контракт часов поверх PSR-20.
Methods
- __construct() : mixed
- Запустить шаговые часы с момента и шага.
- freeze() : FrozenClock
- Снимок текущего момента в замороженные часы; последовательность не продвигается.
- from() : self
- Шаговые часы с момента, заданного объектом или строкой.
- microtime() : float
- Текущий момент в секундах с микросекундами; последовательность не продвигается.
- now() : DateTimeImmutable
- Текущий момент; следующий вызов вернёт момент на шаг позже.
- peek() : DateTimeImmutable
- Момент ближайшего `now()` без продвижения последовательности.
- step() : TimeSpan
- Шаг часов.
- timestamp() : int
- Unix-timestamp текущего момента; последовательность не продвигается.
- timezone() : DateTimeZone
- Таймзона текущего момента.
- withTimezone() : static
- Копия часов с текущим моментом в другой таймзоне и тем же шагом.
Methods
__construct()
Запустить шаговые часы с момента и шага.
public
__construct(DateTimeImmutable $current, TimeSpan|float $step) : mixed
Parameters
- $current : DateTimeImmutable
-
момент первого показания
- $step : TimeSpan|float
-
шаг между показаниями (или секунды); знак и ноль допустимы
freeze()
Снимок текущего момента в замороженные часы; последовательность не продвигается.
public
freeze() : FrozenClock
Attributes
- #[Override]
Return values
FrozenClock —Снимок текущего момента в замороженные часы
from()
Шаговые часы с момента, заданного объектом или строкой.
public
static from(DateTimeImmutable|non-empty-string $start, TimeSpan|float $step[, DateTimeZone|non-empty-string|null $timezone = null ]) : self
Parameters
- $start : DateTimeImmutable|non-empty-string
-
момент первого показания
- $step : TimeSpan|float
-
шаг между показаниями (или секунды); знак и ноль допустимы
- $timezone : DateTimeZone|non-empty-string|null = null
-
таймзона разбора строки;
null— системная
Tags
Return values
self —Шаговые часы с момента, заданного объектом или строкой
microtime()
Текущий момент в секундах с микросекундами; последовательность не продвигается.
public
microtime() : float
Attributes
- #[Override]
Return values
float —Текущий момент в секундах с микросекундами
now()
Текущий момент; следующий вызов вернёт момент на шаг позже.
public
now() : DateTimeImmutable
Attributes
- #[Override]
Return values
DateTimeImmutable —Текущий момент последовательности
peek()
Момент ближайшего `now()` без продвижения последовательности.
public
peek() : DateTimeImmutable
Return values
DateTimeImmutable —Момент ближайшего now() без продвижения последовательности
step()
Шаг часов.
public
step() : TimeSpan
Return values
TimeSpan —Шаг часов
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
Attributes
- #[Override]