🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
FAQ
En quoi le paquet diffère-t-il de symfony/clock ? C’est un sur-ensemble : outre les horloges système/mock/monotone, il ajoute les décorateurs de décalage, d’échelle et de troncature, les horloges à pas et à file, TimeSpan, Deadline, Stopwatch, des timestamp()/microtime() peu coûteux. Ainsi que CalendarDate — un calendrier de niveau Carbon avec localisation. Des dépendances légères : psr/clock et cloud-castle/inflector (sans polyfills ni ICU).
Remplace-t-il Carbon ? Oui, pour la plupart des scénarios. CalendarDate fournit une API de calendrier à parité avec Carbon : arithmétique des mois/années avec contrôle du dépassement (addMonthsNoOverflow()), prédicats, différences, navigation, formateurs, analyse déterministe des chaînes relatives et diffForHumans() en 6 langues sans ICU/ext-intl. Le seul manque est l’intégration étroite avec Laravel (façades, casts de dates Eloquent).
Pourquoi TimeSpan refuse-t-il les mois ? La durée absolue d’un mois n’est pas définie (28 à 31 jours), donc TimeSpan est une durée exacte en nanosecondes. Pour l’arithmétique calendaire des mois/années, utilisez CalendarDate (addMonthsNoOverflow(), addYears()).
ClockHolder est-il thread-safe ? Comme tout état statique de PHP — au sein d’un même processus. Dans les environnements swoole/parallel, injectez ClockInterface explicitement.
Quel est le coût de now() ? Au niveau des meilleurs concurrents (voir Comparaison) ; timestamp() est nettement moins coûteux que now()->getTimestamp() sur n’importe quelle horloge.
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano