🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| 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 | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano