CloudCastle Clock

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

CallbackClock — часы на замыкании

Назначение

Источник момента — произвольное замыкание: мост к нестандартным источникам времени (внешний сервис, генератор сценария).

Для чего и как применять

Интеграция с чужим API времени или сложной логикой выдачи моментов без написания собственного класса часов.

Пример

$clock = new CallbackClock(
    fn (): DateTimeImmutable => $externalTimeService->current(),
    'UTC',
);

Анти-паттерны

Замыкание должно быть быстрым и без побочных эффектов — оно вызывается на каждое чтение.

Жизненный цикл

flowchart LR
    A[Closure] -->|DateTimeImmutable| B[CallbackClock]
    B --> C[ClockInterface consumers]

Сравнение возможности с аналогами

Аспект🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Произвольный источник момента✅❌❌❌❌❌
Декларируемая таймзона✅❌❌❌❌❌
Полный контракт часов пакета✅❌❌❌❌❌
Замыкание вместо наследования✅❌❌❌❌❌
Всего🏆 400000

← К списку возможностей


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano