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}.