CloudCastle Clock

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

OffsetClock — Uhr mit Versatz

Zweck

Dekorator: „Zeitreise" relativ zur inneren Uhr um einen festen Versatz (Sekunden oder DateInterval, beliebiges Vorzeichen).

Wofür und wie zu verwenden

Staging „in der Zukunft" (Test von Aktionen und Fristen), Ausgleich der Abweichung gegenüber einem externen System: OffsetClock::aheadBy($clock, 3600.0).

Beispiel

$tomorrow = OffsetClock::aheadBy(SystemClock::utc(), 86_400.0);
$yesterday = OffsetClock::behindBy(SystemClock::utc(), new DateInterval('P1D'));

Anti-Patterns

Nicht für den Test-Determinismus — im Inneren läuft die Zeit weiterhin; verwenden Sie für Tests FrozenClock/MockClock.

Lebenszyklus

flowchart LR
    A[Inner clock] -->|now()| B[OffsetClock]
    B -->|+offset| C[Shifted moment]
    C --> D[Consumer]

Funktionsvergleich mit Alternativen

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Versatz als Dekorator ohne globalen Zustand✅❌❌❌❌❌
Intervall oder Sekunden, beliebiges Vorzeichen✅❌❌❌❌❌
Überschreiben der Ausgabe-Zeitzone✅❌❌❌❌❌
Komposition mit beliebigen Uhren des Pakets✅❌❌❌❌❌
Gesamt🏆 400000

← Zur Funktionsliste


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