CloudCastle Clock

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

TruncatingClock — troncature des instants

Objectif

Décorateur : arrondit les lectures vers le bas jusqu’à la limite d’une unité (TruncationUnit : seconde, minute, heure, jour...).

À quoi ça sert et comment l’utiliser

Clés de cache à la minute, regroupement des métriques par intervalles : TruncatingClock::toMinute($clock) — parité avec MinuteClock de beste, mais pour n’importe quelle unité.

Exemple

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

Anti-modèles

Pas pour des horodatages d’événements précis — les microsecondes sont volontairement abandonnées.

Cycle de vie

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

Comparaison des fonctionnalités avec les concurrents

Aspect🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Unité de troncature arbitraire✅❌❌❌❌❌
Troncature à la minute✅❌❌❌✅❌
Décorateur sur n’importe quelle horloge✅❌❌❌✅❌
timestamp() économique sans objet✅❌❌❌❌❌
Total🏆 400020

← Retour à la liste des fonctionnalités


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