CloudCastle Clock

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

SystemClock — Systemuhr

Zweck

Zeitquelle für die Produktion: liefert die reale Betriebssystemzeit in einer festen Zeitzone. Der heiße Pfad now() ist so günstig wie möglich; timestamp()/microtime() erzeugen überhaupt keine Objekte.

Wofür und wie einzusetzen

Injizieren Sie sie über ClockInterface in jeden Dienst, der „jetzt" benötigt: Protokollierung, TTLs, Zeitpläne. Fabriken: SystemClock::utc() (zwischengespeichert), SystemClock::system(), SystemClock::fromTimezone($tz).

Beispiel

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

Anti-Patterns

Rufen Sie sie nicht statisch tief in der Geschäftslogik auf — übergeben Sie das Interface, sonst können Tests die Zeit nicht ersetzen.

Lebenszyklus

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

Funktionsvergleich mit Konkurrenten

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Feste explizite Zeitzone✅✅✅✅❌✅
Zwischengespeicherte UTC-Instanz✅❌❌❌✅❌
Zeitstempel ohne Datumsobjekt✅❌❌❌❌❌
Echtes sleep()/sleepUntil()✅✅❌❌❌❌
Gesamt🏆 421111

← Zurück zur Funktionsliste


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