CloudCastle Clock API

Clock
in package

Статический фасад пакета: короткие имена для типовых сценариев.

Clock::now() читает глобальные часы (ClockHolder), фабрики создают конкретные реализации. Для кода с DI предпочтительнее внедрять ClockInterface напрямую — фасад существует для простых скриптов и миграции легаси на управляемое время. Оформлен enum-ом без вариантов: инстанцирование исключено на уровне языка.

Table of Contents

Methods

adapt()  : PsrClockAdapter
Адаптация любых PSR-20 часов или объекта с методом `now()` к расширенному контракту пакета.
frozen()  : FrozenClock
Замороженные часы на указанном моменте.
inZone()  : SystemClock
Системные часы в заданной таймзоне (короткий вход в зону).
mock()  : MockClock
Тестовые часы с виртуальным сном.
monotonic()  : MonotonicClock
Монотонные часы, устойчивые к переводу системного времени.
now()  : DateTimeImmutable
Текущий момент по глобальным часам приложения.
offset()  : OffsetClock
Часы со смещением относительно внутренних.
queue()  : QueueClock
Часы-очередь из заранее заданных моментов.
scaled()  : ScaledClock
Часы с масштабом времени относительно внутренних.
step()  : StepClock
Шаговые часы: каждый `now()` сдвигает время на фиксированный шаг.
system()  : SystemClock
Системные часы в таймзоне процесса.
truncatedTo()  : TruncatingClock
Часы с усечением моментов до границы единицы.
utc()  : SystemClock
Системные часы в UTC.

Methods

adapt()

Адаптация любых PSR-20 часов или объекта с методом `now()` к расширенному контракту пакета.

public static adapt(object $inner) : PsrClockAdapter
Parameters
$inner : object

адаптируемый источник времени

Tags
throws
InvalidClockValueException

если у объекта нет публичного метода now()

Return values
PsrClockAdapter —

Адаптер над источником

frozen()

Замороженные часы на указанном моменте.

public static frozen([DateTimeImmutable|non-empty-string $moment = 'now' ][, DateTimeZone|non-empty-string|null $timezone = null ]) : FrozenClock
Parameters
$moment : DateTimeImmutable|non-empty-string = 'now'

момент заморозки

$timezone : DateTimeZone|non-empty-string|null = null

таймзона разбора строки; null — системная

Tags
throws
InvalidClockValueException

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

Return values
FrozenClock —

Замороженные часы на указанном моменте

inZone()

Системные часы в заданной таймзоне (короткий вход в зону).

public static inZone(DateTimeZone|non-empty-string $timezone) : SystemClock
Parameters
$timezone : DateTimeZone|non-empty-string

объект или идентификатор таймзоны

Tags
throws
InvalidClockValueException

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

Return values
SystemClock —

Системные часы в заданной таймзоне (короткий вход в зону)

mock()

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

public static mock([DateTimeImmutable|non-empty-string $moment = 'now' ][, DateTimeZone|non-empty-string|null $timezone = null ]) : MockClock
Parameters
$moment : DateTimeImmutable|non-empty-string = 'now'

стартовый момент

$timezone : DateTimeZone|non-empty-string|null = null

таймзона разбора строки; null — системная

Tags
throws
InvalidClockValueException

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

Return values
MockClock —

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

monotonic()

Монотонные часы, устойчивые к переводу системного времени.

public static monotonic([DateTimeZone|non-empty-string|null $timezone = null ]) : MonotonicClock
Parameters
$timezone : DateTimeZone|non-empty-string|null = null

таймзона выдаваемых моментов; null — системная

Tags
throws
InvalidClockValueException

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

Return values
MonotonicClock —

Монотонные часы, устойчивые к переводу системного времени

now()

Текущий момент по глобальным часам приложения.

public static now([non-empty-string|null $modifier = null ]) : DateTimeImmutable

С модификатором возвращает DatePoint: Clock::now('+1 hour').

Parameters
$modifier : non-empty-string|null = null

модификатор формата modify()

Tags
throws
InvalidClockValueException

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

Return values
DateTimeImmutable —

Текущий момент по глобальным часам приложения

offset()

Часы со смещением относительно внутренних.

public static offset(ClockInterface $inner, DateInterval|float $offset) : OffsetClock
Parameters
$inner : ClockInterface

декорируемые часы

$offset : DateInterval|float

смещение: интервал либо секунды, знак любой

Tags
throws
InvalidClockValueException

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

Return values
OffsetClock —

Часы со смещением относительно внутренних

queue()

Часы-очередь из заранее заданных моментов.

public static queue(DateTimeImmutable|non-empty-string ...$moments) : QueueClock
Parameters
$moments : DateTimeImmutable|non-empty-string

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

Tags
throws
InvalidClockValueException

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

Return values
QueueClock —

Часы-очередь из заранее заданных моментов

scaled()

Часы с масштабом времени относительно внутренних.

public static scaled(ClockInterface $inner, float $scale) : ScaledClock
Parameters
$inner : ClockInterface

декорируемые часы

$scale : float

коэффициент: >1 — быстрее реального, <1 — медленнее

Tags
throws
InvalidClockValueException

если коэффициент не положителен

Return values
ScaledClock —

Часы с масштабом времени относительно внутренних

step()

Шаговые часы: каждый `now()` сдвигает время на фиксированный шаг.

public static step(DateTimeImmutable|non-empty-string $start, TimeSpan|float $step) : StepClock
Parameters
$start : DateTimeImmutable|non-empty-string

момент первого показания

$step : TimeSpan|float

шаг между показаниями (или секунды); знак и ноль допустимы

Tags
throws
InvalidClockValueException

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

Return values
StepClock —

Шаговые часы с заданным стартом и шагом

system()

Системные часы в таймзоне процесса.

public static system() : SystemClock
Return values
SystemClock —

Системные часы в таймзоне процесса

utc()

Системные часы в UTC.

public static utc() : SystemClock
Return values
SystemClock —

Системные часы в UTC

On this page

Search results