CloudCastle Clock

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

FrozenClock — reloj congelado

Propósito

Determinismo de las pruebas: el tiempo permanece detenido hasta que se desplaza explícitamente con setTo()/modify()/advance()/rewind().

Para qué y cómo utilizarlo

Herramienta básica de las pruebas unitarias: FrozenClock::from('2026-01-01 00:00:00', 'UTC'); instantánea de cualquier reloj — $clock->freeze().

Ejemplo

$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

Antipatrones

No lo use en producción: el tiempo detenido rompe los TTL y las planificaciones.

Ciclo de vida

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

Comparación de la característica con análogos

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Desplazamientos explícitos hacia adelante y hacia atrás✅❌❌❌❌❌
Modificadores de cadena (+1 day)✅❌✅❌❌❌
Error tipado ante entrada basura✅❌✅❌❌❌
Instantánea desde cualquier reloj (freeze())✅❌❌❌❌❌
Total🏆 402000

← A la lista de características


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