🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Fuso orario esplicito fisso | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| Istanza UTC in cache | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Timestamp senza oggetto data | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| sleep()/sleepUntil() reali | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Totale | 🏆 4 | 2 | 1 | 1 | 1 | 1 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano