CloudCastle Clock

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

FAQ

In cosa il pacchetto differisce da symfony/clock? È un superset: oltre agli orologi di sistema/mock/monotòni, aggiunge decoratori di offset, scala e troncamento, orologi a passi e a coda, TimeSpan, Deadline, Stopwatch, i metodi economici timestamp()/microtime(). Inoltre CalendarDate — un calendario di livello Carbon con localizzazione. Dipendenze leggere: psr/clock e cloud-castle/inflector (senza polyfill né ICU).

Sostituisce Carbon? Sì, per la maggior parte degli scenari. CalendarDate offre un'API di calendario alla pari con Carbon: aritmetica di mesi/anni con controllo dell'overflow (addMonthsNoOverflow()), predicati, differenze, navigazione, formatter, parsing deterministico di stringhe relative e diffForHumans() in 6 lingue senza ICU/ext-intl. L'unica cosa che manca è l'integrazione stretta con Laravel (facciate, cast delle date di Eloquent).

Perché TimeSpan non accetta i mesi? La durata assoluta di un mese non è definita (28–31 giorni), perciò TimeSpan è una durata esatta in nanosecondi. Per l'aritmetica di calendario di mesi/anni usa CalendarDate (addMonthsNoOverflow(), addYears()).

ClockHolder è thread-safe? Come qualsiasi stato statico di PHP — all'interno di un singolo processo. Negli ambienti swoole/parallel inietta ClockInterface esplicitamente.

Quanto costa now()? Al livello dei migliori analoghi (vedi Confronto); timestamp() è sensibilmente più economico di now()->getTimestamp() su qualsiasi orologio.


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