🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
Paso automático en cada now() | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
peek() sin avanzar | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Paso negativo/cero | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Paso como TimeSpan con precisión de ns | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Volver a la lista de características
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano