CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
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🏆 400000

← Retour à la liste des fonctionnalités


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