CloudCastle Clock

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

OffsetClock — orologio con offset

Scopo

Decoratore: «viaggio nel tempo» rispetto all'orologio interno di uno scostamento fisso (secondi o DateInterval, di qualsiasi segno).

A cosa serve e come usarlo

Staging «nel futuro» (test di promozioni, scadenze), compensazione dello sfasamento con un sistema esterno: OffsetClock::aheadBy($clock, 3600.0).

Esempio

$tomorrow = OffsetClock::aheadBy(SystemClock::utc(), 86_400.0);
$yesterday = OffsetClock::behindBy(SystemClock::utc(), new DateInterval('P1D'));

Anti-pattern

Non è adatto al determinismo dei test — all'interno scorre comunque il tempo reale; per i test usa FrozenClock/MockClock.

Ciclo di vita

flowchart LR
    A[Inner clock] -->|now()| B[OffsetClock]
    B -->|+offset| C[Shifted moment]
    C --> D[Consumer]

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Offset tramite decoratore senza stato globale✅❌❌❌❌❌
Intervallo o secondi, di qualsiasi segno✅❌❌❌❌❌
Sovrascrittura del fuso orario di uscita✅❌❌❌❌❌
Composizione con qualsiasi orologio del pacchetto✅❌❌❌❌❌
Totale🏆 400000

← Torna all'elenco delle funzionalità


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