CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Fuseau horaire fixe explicite✅✅✅✅❌✅
Instance UTC mise en cache✅❌❌❌✅❌
Horodatage sans objet de date✅❌❌❌❌❌
sleep()/sleepUntil() réels✅✅❌❌❌❌
Total🏆 421111

← Retour à la liste des fonctionnalités


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