🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
CallbackClock — Uhr auf einem Closure
Zweck
Die Quelle des Zeitpunkts ist ein beliebiges Closure: eine Brücke zu nicht standardmäßigen Zeitquellen (externer Dienst, Szenario-Generator).
Wofür und wie zu verwenden
Integration einer fremden Zeit-API oder komplexer Logik zur Ausgabe von Zeitpunkten, ohne eine eigene Uhr-Klasse zu schreiben.
Beispiel
$clock = new CallbackClock(
fn (): DateTimeImmutable => $externalTimeService->current(),
'UTC',
);
Anti-Patterns
Das Closure muss schnell und frei von Nebenwirkungen sein — es wird bei jedem Lesevorgang aufgerufen.
Lebenszyklus
flowchart LR
A[Closure] -->|DateTimeImmutable| B[CallbackClock]
B --> C[ClockInterface consumers]
Funktionsvergleich mit Konkurrenten
| Aspekt | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Beliebige Quelle des Zeitpunkts | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Deklarierte Zeitzone | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Vollständiger Uhr-Vertrag des Pakets | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Closure statt Vererbung | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Gesamt | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano