CloudCastle Clock

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

TruncatingClock — truncamiento de momentos

Propósito

Decorador: redondea las lecturas hacia abajo hasta el límite de una unidad (TruncationUnit: segundo, minuto, hora, día...).

Para qué y cómo usarlo

Claves de caché por minutos, agrupación de métricas por intervalos: TruncatingClock::toMinute($clock) — paridad con MinuteClock de beste, pero para cualquier unidad.

Ejemplo

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

Antipatrones

No para marcas de eventos precisas — los microsegundos se descartan deliberadamente.

Ciclo de vida

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

Comparación de la característica con alternativas

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Unidad de truncamiento arbitraria✅❌❌❌❌❌
Truncamiento al minuto✅❌❌❌✅❌
Decorador sobre cualquier reloj✅❌❌❌✅❌
timestamp() económico sin objeto✅❌❌❌❌❌
Total🏆 400020

← Volver a la lista de características


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