CloudCastle Clock

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

SystemClock — orologio di sistema

Scopo

Sorgente di tempo per la produzione: restituisce il tempo reale del sistema operativo in un fuso orario fisso. Il percorso caldo now() è il più economico possibile, mentre timestamp()/microtime() non creano alcun oggetto.

A cosa serve e come usarlo

Inietta tramite ClockInterface in tutti i servizi che hanno bisogno di «adesso»: logging, TTL, pianificazioni. Factory: SystemClock::utc() (in cache), SystemClock::system(), SystemClock::fromTimezone($tz).

Esempio

$clock = SystemClock::utc();
$moment = $clock->now();          // DateTimeImmutable in UTC
$unix = $clock->timestamp();      // int, no date object
$fine = $clock->microtime();      // float with microseconds

Anti-pattern

Non chiamarlo staticamente in profondità nella logica di business — passa l'interfaccia, altrimenti i test non potranno sostituire il tempo.

Ciclo di vita

stateDiagram-v2
    [*] --> Created: utc()/system()/fromTimezone()
    Created --> Reading: now()/timestamp()/microtime()
    Reading --> Reading: repeat
    Created --> Frozen: freeze()
    Frozen --> [*]

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Fuso orario esplicito fisso✅✅✅✅❌✅
Istanza UTC in cache✅❌❌❌✅❌
Timestamp senza oggetto data✅❌❌❌❌❌
sleep()/sleepUntil() reali✅✅❌❌❌❌
Totale🏆 421111

← Torna all'elenco delle funzionalità


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