CloudCastle Clock API

Application

Table of Contents

Interfaces

AdjustableClockInterface
Часы с управляемым временем — для тестов и симуляций.
ClockInterface
Расширенный контракт часов поверх PSR-20.
SleepableClockInterface
Часы, умеющие «спать» до нужного момента.
ClockExceptionInterface
Маркер всех исключений пакета.

Classes

CalendarDate
Иммутабельная календарная дата поверх {@see DateTimeImmutable} с богатой работой по григорианскому календарю — то, ради чего обычно берут Carbon, но без единой внешней зависимости.
CalendarLocale
Локализация календаря на шести языках (ru, en, de, fr, es, it) для {@see CalendarDate}: названия месяцев и дней недели плюс согласование единиц с числительными для человекочитаемой разницы ({@see CalendarDate::diffForHumans()}).
CalendarPeriod
Период календарных дат с шагом (аналог `CarbonPeriod`).
CallbackClock
Часы из замыкания: каждый вызов `now()` делегируется callback-у.
ClockHolder
Глобальный слот часов приложения.
DatePoint
Момент времени, привязанный к часам приложения (аналог symfony DatePoint).
Deadline
Дедлайн — момент истечения, привязанный к конкретным часам.
InvalidClockValueException
Некорректное значение, переданное часам.
UnknownMacroException
Вызов метода, который не объявлен и не зарегистрирован макросом ({@see \CloudCastle\Clock\CalendarDate::macro()}).
FrozenClock
Замороженные часы: время стоит, пока его явно не сдвинут.
MockClock
Тестовые часы с виртуальным сном.
MonotonicClock
Монотонные часы на `hrtime()`.
OffsetClock
Декоратор-смещение: время внутренних часов ± фиксированный сдвиг.
PsrClockAdapter
Адаптер стороннего PSR-20-источника к расширенному контракту пакета (аналог `WrappingClock` из beste/clock).
QueueClock
Часы-очередь: `now()` выдаёт заранее заданные моменты по одному.
ScaledClock
Декоратор-масштаб: время течёт быстрее или медленнее реального.
StepClock
Шаговые часы: каждый вызов `now()` сдвигает время на фиксированный шаг.
Stopwatch
Секундомер на монотонном таймере.
SystemClock
Системные часы — продакшн-реализация PSR-20.
TimeSpan
Длительность с наносекундной точностью — иммутабельный value object.
TruncatingClock
Декоратор-усечение: моменты внутренних часов округляются вниз до границы единицы.

Traits

CalendarComparisonsTrait
Предикаты и разницы календарной даты: день недели, относительные проверки (сегодня/вчера/завтра от часов приложения), сравнения с другим моментом и целочисленные разницы. Вынесены из {@see CalendarDate} отдельным трейтом, чтобы удержать число публичных методов класса в пределах анализатора — поведение и покрытие тестами не меняются.
CalendarFormattingTrait
Готовые строковые представления даты в духе Carbon: `toDateString()`, `toDateTimeString()`, стандартные форматы (ISO 8601, RFC 2822, ATOM, W3C, RSS, cookie) и разложение на компоненты. Вынесено из {@see CalendarDate} отдельным трейтом, чтобы удержать число публичных методов класса в пределах анализатора; поведение и покрытие тестами не меняются.
CalendarHelpersTrait
Дополнительные хелперы календарной даты уровня Carbon: относительные предикаты (текущий год/месяц/день), структурные проверки (первый/последний день месяца, начало суток), границы декады и века, недельный номер в месяце, дней в году и fluent-сеттеры отдельных полей. Вынесено из {@see CalendarDate} отдельным трейтом ради лимита публичных методов класса; поведение и покрытие не меняются.
CalendarMacrosTrait
Макросы календарной даты (аналог `Carbon::macro()`): расширение API собственными методами без наследования финального класса.
ClockAwareTrait
Внедрение часов в сервис с фолбэком на глобальный слот.
ClockSensitiveTrait
Подмена глобальных часов в тестах PHPUnit 10+ (аналог `ClockSensitiveTrait` из symfony/clock).

Enums

Clock
Статический фасад пакета: короткие имена для типовых сценариев.
TruncationUnit
Единица усечения момента для {@see TruncatingClock}.
On this page

Search results