CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
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🏆 400000

← Retour à la liste des fonctionnalités


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