CloudCastle Clock

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

TruncatingClock — Kürzen von Zeitpunkten

Zweck

Dekorator: rundet die Messwerte auf die Grenze einer Einheit ab (TruncationUnit: Sekunde, Minute, Stunde, Tag...).

Wofür und wie zu verwenden

Cache-Schlüssel pro Minute, Gruppierung von Metriken nach Intervallen: TruncatingClock::toMinute($clock) — Parität mit beste MinuteClock, jedoch für jede beliebige Einheit.

Beispiel

$byMinute = TruncatingClock::toMinute(SystemClock::utc());
$byHour = new TruncatingClock(SystemClock::utc(), TruncationUnit::Hour);
$key = 'stats:' . $byHour->now()->format('YmdH');

Anti-Patterns

Nicht für präzise Ereignis-Zeitstempel — Mikrosekunden werden bewusst verworfen.

Lebenszyklus

flowchart LR
    A[Inner clock] -->|12:34:56.789| B[TruncatingClock unit=Minute]
    B -->|12:34:00.000| C[Consumer]

Funktionsvergleich mit Alternativen

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Beliebige Kürzungseinheit✅❌❌❌❌❌
Kürzen auf eine Minute✅❌❌❌✅❌
Dekorator über beliebige Uhr✅❌❌❌✅❌
Günstiges timestamp() ohne Objekt✅❌❌❌❌❌
Gesamt🏆 400020

← Zur Funktionsliste


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