CloudCastle Clock

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

StepClock — Schrittuhr

Zweck

Jeder Aufruf von now() verschiebt die Zeit um einen festen Schritt: eine deterministische Folge von Zeitpunkten ohne manuelle advance().

Wofür und wie zu verwenden

Erzeugung von Ereignisreihen in Tests: Zeitstempel von Einträgen, Polling-Intervalle. peek()/timestamp() spähen ohne Verschiebung.

Beispiel

$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

Anti-Patterns

Beachten Sie: Nur now() rückt vor; verwenden Sie einen Null-Schritt zum „Anhalten".

Lebenszyklus

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)

Funktionsvergleich mit Alternativen

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Automatischer Schritt bei jedem now()✅❌❌❌❌❌
peek() ohne Vorrücken✅❌❌❌❌❌
Negativer/Null-Schritt✅❌❌❌❌❌
Schritt als TimeSpan mit ns-Genauigkeit✅❌❌❌❌❌
Gesamt🏆 400000

← Zur Funktionsliste


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