🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Accelerazione/rallentamento del tempo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Validazione della scala con eccezione | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Il punto di riferimento è fissato alla creazione | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Composizione con i mock per i test | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Totale | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano