🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
PsrClockAdapter — adattatore di orologio PSR-20
Scopo
Avvolge qualsiasi Psr\Clock\ClockInterface nel contratto esteso del pacchetto: aggiunge timestamp(), microtime(), timezone(), freeze(), withTimezone().
A cosa serve e come usarlo
Migrazione graduale: gli orologi di un'altra libreria (symfony, lcobucci...) funzionano in tutte le API del pacchetto: PsrClockAdapter::wrap($foreign).
Esempio
$foreign = new \Symfony\Component\Clock\NativeClock();
$clock = PsrClockAdapter::wrap($foreign);
$clock->timestamp(); // works on top of any PSR-20 clock
Anti-pattern
Le primitive economiche dell'adattatore materializzano onestamente il momento dell'orologio interno — il SystemClock nativo è più veloce.
Ciclo di vita
flowchart LR
A[Any PSR-20 clock] --> B[PsrClockAdapter]
B --> C[Extended ClockInterface]
C --> D[TimeSpan / Deadline / decorators]
Confronto della funzionalità con gli analoghi
| Aspetto | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Adattamento di qualsiasi orologio PSR-20 | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ |
| Contratto esteso sopra PSR | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Compatibilità con i decoratori del pacchetto | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Istantanea freeze() di orologi esterni | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Incapsulamento di qualsiasi oggetto con now() pubblico (legacy) | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ |
| Totale | 🏆 5 | 1 | 0 | 0 | 2 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano