🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
SystemClock — horloge système
Objectif
Source de temps de production : renvoie le temps réel du système d’exploitation dans un fuseau horaire fixe. Le chemin critique now() est le moins coûteux possible ; timestamp()/microtime() ne créent aucun objet.
Utilité et mode d’emploi
Injectez via ClockInterface dans tous les services qui ont besoin du « maintenant » : journalisation, TTL, planifications. Fabriques : SystemClock::utc() (mise en cache), SystemClock::system(), SystemClock::fromTimezone($tz).
Exemple
$clock = SystemClock::utc();
$moment = $clock->now(); // DateTimeImmutable in UTC
$unix = $clock->timestamp(); // int, no date object
$fine = $clock->microtime(); // float with microseconds
Anti-modèles
N’appelez pas statiquement au fond de la logique métier — transmettez l’interface, sinon les tests ne pourront pas substituer le temps.
Cycle de vie
stateDiagram-v2
[*] --> Created: utc()/system()/fromTimezone()
Created --> Reading: now()/timestamp()/microtime()
Reading --> Reading: repeat
Created --> Frozen: freeze()
Frozen --> [*]
Comparaison des fonctionnalités avec les concurrents
| Aspect | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Fuseau horaire fixe explicite | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
| Instance UTC mise en cache | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Horodatage sans objet de date | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| sleep()/sleepUntil() réels | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 2 | 1 | 1 | 1 | 1 |
← Retour à la liste des fonctionnalités
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano