CloudCastle Clock

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

ScaledClock — orologio con scala temporale

Scopo

Decoratore: il tempo virtuale scorre più veloce (scale > 1) o più lento (scale < 1) di quello reale a partire dal momento della creazione.

A cosa serve e come usarlo

Simulazioni e demo: «un giorno al minuto», verifica accelerata di scenari con pianificazioni.

Esempio

$fast = new ScaledClock(SystemClock::utc(), 60.0);  // a minute becomes an hour
sleep(1);
$fast->now();   // about a minute later in virtual time

Anti-pattern

Una scala non positiva viene respinta con un'eccezione; per fermare il tempo usa FrozenClock.

Ciclo di vita

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

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Accelerazione/rallentamento del tempo✅❌❌❌❌❌
Validazione della scala con eccezione✅❌❌❌❌❌
Il punto di riferimento è fissato alla creazione✅❌❌❌❌❌
Composizione con i mock per i test✅❌❌❌❌❌
Totale🏆 400000

← Torna all'elenco delle funzionalità


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