CloudCastle Clock

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

FrozenClock — horloge figée

Objectif

Déterminisme des tests : le temps est immobile jusqu’à ce qu’on le déplace explicitement avec setTo()/modify()/advance()/rewind().

Utilité et mode d’emploi

L’outil de base des tests unitaires : FrozenClock::from('2026-01-01 00:00:00', 'UTC') ; capturez un instantané de n’importe quelle horloge avec $clock->freeze().

Exemple

$clock = FrozenClock::from('2026-01-01 00:00:00', 'UTC');
$clock->advance(90.0);            // +90 seconds
$clock->modify('+1 day');
$clock->rewind(30.0);             // 30 seconds back

Anti-modèles

Ne l’utilisez jamais en production : un temps arrêté casse les TTL et les planifications.

Cycle de vie

stateDiagram-v2
    [*] --> Frozen: from()/fromUtcNow()
    Frozen --> Frozen: now() (same moment)
    Frozen --> Shifted: advance()/rewind()/modify()/setTo()
    Shifted --> Shifted: now() (new fixed moment)

Comparaison des fonctionnalités avec les concurrents

Aspect🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Décalages explicites avant et arrière✅❌❌❌❌❌
Modificateurs sous forme de chaîne (+1 day)✅❌✅❌❌❌
Erreur typée sur une entrée invalide✅❌✅❌❌❌
Instantané depuis n’importe quelle horloge (freeze())✅❌❌❌❌❌
Total🏆 402000

← Retour à la liste des fonctionnalités


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