ClockHolder
in package
Глобальный слот часов приложения.
Позволяет коду без внедрения зависимостей брать текущие часы из одной точки, а тестам — подменять их на управляемые. Без явной установки возвращает SystemClock в системной таймзоне. Все методы статические; создавать экземпляры не требуется.
Table of Contents
Methods
- get() : ClockInterface
- Текущие глобальные часы; без установки — системные.
- isSet() : bool
- Установлены ли часы явно.
- now() : DateTimeImmutable
- Шорткат: текущий момент глобальных часов.
- reset() : void
- Сбросить слот к дефолтным системным часам.
- set() : void
- Установить глобальные часы (тест подменяет на {@see MockClock}).
- within() : T
- Выполнить код с временно подменёнными глобальными часами.
Methods
get()
Текущие глобальные часы; без установки — системные.
public
static get() : ClockInterface
Return values
ClockInterface —Текущие глобальные часы; без установки — системные
isSet()
Установлены ли часы явно.
public
static isSet() : bool
Return values
bool —Установлены ли часы явно
now()
Шорткат: текущий момент глобальных часов.
public
static now() : DateTimeImmutable
Return values
DateTimeImmutable —Шорткат: текущий момент глобальных часов
reset()
Сбросить слот к дефолтным системным часам.
public
static reset() : void
set()
Установить глобальные часы (тест подменяет на {@see MockClock}).
public
static set(ClockInterface $clock) : void
Parameters
- $clock : ClockInterface
-
глобальный источник времени
within()
Выполнить код с временно подменёнными глобальными часами.
public
static within(ClockInterface $clock, callable(): T $callback) : T
Прежнее состояние слота восстанавливается всегда — и при штатном возврате, и при исключении из колбэка.
Parameters
- $clock : ClockInterface
-
часы на время выполнения колбэка
- $callback : callable(): T
-
выполняемый код
Tags
Return values
T —результат колбэка