CloudCastle Clock

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

StepClock — reloj por pasos

Propósito

Cada llamada a now() desplaza el tiempo en un paso fijo: una secuencia determinista de momentos sin advance() manuales.

Para qué y cómo usarlo

Generación de series de eventos en pruebas: marcas de tiempo de registros, intervalos de sondeo. peek()/timestamp() consultan sin desplazar.

Ejemplo

$clock = StepClock::from('2026-01-01 00:00:00', TimeSpan::ofSeconds(10), 'UTC');
$clock->now();   // 00:00:00
$clock->now();   // 00:00:10
$clock->peek();  // 00:00:20 — without advancing

Antipatrones

Recuerde: solo now() avanza; para «detener» use un paso de cero.

Ciclo de vida

stateDiagram-v2
    [*] --> S0: from(start, step)
    S0 --> S1: now() → start
    S1 --> S2: now() → start+step
    S2 --> S3: now() → start+2·step
    S1 --> S1: peek()/timestamp() (no advance)

Comparación de la característica con alternativas

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Paso automático en cada now()✅❌❌❌❌❌
peek() sin avanzar✅❌❌❌❌❌
Paso negativo/cero✅❌❌❌❌❌
Paso como TimeSpan con precisión de ns✅❌❌❌❌❌
Total🏆 400000

← Volver a la lista de características


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