CloudCastle Clock

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

TruncatingClock — troncamento dei momenti

Scopo

Decoratore: arrotonda le letture verso il basso al limite di un'unità (TruncationUnit: secondo, minuto, ora, giorno...).

A cosa serve e come usarlo

Chiavi di cache al minuto, raggruppamento di metriche per intervalli: TruncatingClock::toMinute($clock) — alla pari con MinuteClock di beste, ma per qualsiasi unità.

Esempio

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

Anti-pattern

Non è adatto per marche temporali precise degli eventi — i microsecondi vengono scartati intenzionalmente.

Ciclo di vita

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

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Unità di troncamento arbitraria✅❌❌❌❌❌
Troncamento al minuto✅❌❌❌✅❌
Decoratore su qualsiasi orologio✅❌❌❌✅❌
timestamp() economico senza oggetto✅❌❌❌❌❌
Totale🏆 400020

← Torna all'elenco delle funzionalità


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