CloudCastle Clock API

StepClock
in package
implements ClockInterface

FinalYes

Шаговые часы: каждый вызов `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
throws
InvalidClockValueException

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

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() без продвижения последовательности

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