CloudCastle Clock

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

DatePoint — momento dall'orologio dell'applicazione

Scopo

Sottoclasse di DateTimeImmutable: new DatePoint() prende «adesso» dall'orologio globale (ClockHolder); gli errori di parsing sono eccezioni tipizzate invece di false con un warning.

A cosa serve e come usarlo

Sostituto di new DateTimeImmutable() nel codice che deve essere testabile: i momenti seguono automaticamente l'orologio sostituito.

Esempio

ClockHolder::set(MockClock::from('2026-01-01 00:00:00', 'UTC'));
$point = new DatePoint();                 // 2026-01-01 from the mock clock
$later = new DatePoint('+1 hour');
DatePoint::createFromFormat('Y-m-d', 'garbage');  // typed exception

Anti-pattern

Nei servizi con DI è preferibile un ClockInterface esplicito; DatePoint è un ponte per il codice senza iniezione.

Ciclo di vita

flowchart LR
    A[ClockHolder] -->|now| B[new DatePoint]
    B --> C[DateTimeImmutable API]
    B -->|modify/createFromFormat errors| D[/InvalidClockValueException/]

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Momento dall'orologio globale✅✅✅❌❌❌
Errori di parsing tipizzati✅✅✅❌❌❌
API completa di DateTimeImmutable✅✅✅❌❌❌
Zero dipendenze di implementazione✅❌❌❌❌❌
Totale🏆 433000

← Torna all'elenco delle funzionalità


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