🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
OffsetClock — horloge avec décalage
Objectif
Décorateur : « voyage dans le temps » par rapport à l’horloge interne selon un décalage fixe (secondes ou DateInterval, de signe quelconque).
Utilité et mode d’emploi
Préproduction « dans le futur » (tests de promotions, d’échéances), compensation d’un désalignement avec un système externe : OffsetClock::aheadBy($clock, 3600.0).
Exemple
$tomorrow = OffsetClock::aheadBy(SystemClock::utc(), 86_400.0);
$yesterday = OffsetClock::behindBy(SystemClock::utc(), new DateInterval('P1D'));
Anti-modèles
Pas pour le déterminisme des tests — à l’intérieur, le temps s’écoule toujours ; pour les tests, utilisez FrozenClock/MockClock.
Cycle de vie
flowchart LR
A[Inner clock] -->|now()| B[OffsetClock]
B -->|+offset| C[Shifted moment]
C --> D[Consumer]
Comparaison des fonctionnalités avec les concurrents
| Aspect | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Décalage par décorateur sans état global | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Intervalle ou secondes, de signe quelconque | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Redéfinition du fuseau horaire de sortie | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Composition avec n’importe quelle horloge du paquet | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Retour à la liste des fonctionnalités
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano