🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Momento dall'orologio globale | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Errori di parsing tipizzati | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
API completa di DateTimeImmutable | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Zero dipendenze di implementazione | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Totale | 🏆 4 | 3 | 3 | 0 | 0 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano