CloudCastle Clock

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

ScaledClock — часы с масштабом времени

Назначение

Декоратор: виртуальное время течёт быстрее (scale > 1) или медленнее (scale < 1) реального от точки создания.

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

Симуляции и демо: «сутки за минуту», ускоренная проверка сценариев с расписаниями.

Пример

$fast = new ScaledClock(SystemClock::utc(), 60.0);  // минута = час
sleep(1);
$fast->now();   // ~минута спустя по виртуальному времени

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

Неположительный масштаб отклоняется исключением; для остановки времени используйте FrozenClock.

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

flowchart LR
    A[Inner clock] -->|delta| B[ScaledClock]
    B -->|delta x scale| C[Virtual moment]
    C --> D[Consumer]

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

Аспект🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Ускорение/замедление времени✅❌❌❌❌❌
Валидация масштаба исключением✅❌❌❌❌❌
Точка отсчёта фиксируется при создании✅❌❌❌❌❌
Композиция с моками для тестов✅❌❌❌❌❌
Всего🏆 400000

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


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