27536 shaares
Lire l’heure système directement (new DateTimeImmutable(), time()) rend les règles métier difficiles à tester et provoque des tests lents ou instables. PSR-20 standardise l’accès au temps via ClockInterface::now(). Symfony Clock fournit des horloges réelles et simulées (NativeClock, MockClock) : on peut figer ou avancer instantanément le temps, tester les échéances exactes et éviter les attentes réelles. L’article détaille aussi l’injection de dépendances, ClockSensitiveTrait, les différences entre horloges injectées et globales, ainsi que les pièges liés aux fuseaux horaires.