🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
ScaledClock — horloge à échelle de temps
Objectif
Décorateur : le temps virtuel s’écoule plus vite (scale > 1) ou plus lentement (scale < 1) que le temps réel, à partir du point de création.
Utilité et mode d’emploi
Simulations et démos : « une journée par minute », vérification accélérée de scénarios pilotés par des planifications.
Exemple
$fast = new ScaledClock(SystemClock::utc(), 60.0); // a minute becomes an hour
sleep(1);
$fast->now(); // about a minute later in virtual time
Anti-modèles
Une échelle non positive est rejetée par une exception ; pour arrêter le temps, utilisez FrozenClock.
Cycle de vie
flowchart LR
A[Inner clock] -->|delta| B[ScaledClock]
B -->|delta x scale| C[Virtual moment]
C --> D[Consumer]
Comparaison des fonctionnalités avec les concurrents
| Aspect | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Accélération / ralentissement du temps | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Validation de l’échelle par une exception | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Point de référence fixé à la création | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Composition avec des mocks pour les tests | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Retour à la liste des fonctionnalités
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano