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
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
Return values
FrozenClock —Замороженные часы на указанном моменте
inZone()
Системные часы в заданной таймзоне (короткий вход в зону).
public
static inZone(DateTimeZone|non-empty-string $timezone) : SystemClock
Parameters
- $timezone : DateTimeZone|non-empty-string
-
объект или идентификатор таймзоны
Tags
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
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
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
Return values
DateTimeImmutable —Текущий момент по глобальным часам приложения
offset()
Часы со смещением относительно внутренних.
public
static offset(ClockInterface $inner, DateInterval|float $offset) : OffsetClock
Parameters
- $inner : ClockInterface
-
декорируемые часы
- $offset : DateInterval|float
-
смещение: интервал либо секунды, знак любой
Tags
Return values
OffsetClock —Часы со смещением относительно внутренних
queue()
Часы-очередь из заранее заданных моментов.
public
static queue(DateTimeImmutable|non-empty-string ...$moments) : QueueClock
Parameters
- $moments : DateTimeImmutable|non-empty-string
-
моменты в порядке выдачи
Tags
Return values
QueueClock —Часы-очередь из заранее заданных моментов
scaled()
Часы с масштабом времени относительно внутренних.
public
static scaled(ClockInterface $inner, float $scale) : ScaledClock
Parameters
- $inner : ClockInterface
-
декорируемые часы
- $scale : float
-
коэффициент:
>1— быстрее реального,<1— медленнее
Tags
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
Return values
StepClock —Шаговые часы с заданным стартом и шагом
system()
Системные часы в таймзоне процесса.
public
static system() : SystemClock
Return values
SystemClock —Системные часы в таймзоне процесса
truncatedTo()
Часы с усечением моментов до границы единицы.
public
static truncatedTo(ClockInterface $inner, TruncationUnit $unit) : TruncatingClock
Parameters
- $inner : ClockInterface
-
декорируемые часы
- $unit : TruncationUnit
-
единица усечения
Return values
TruncatingClock —Часы с усечением моментов до границы единицы
utc()
Системные часы в UTC.
public
static utc() : SystemClock
Return values
SystemClock —Системные часы в UTC