CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
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🏆 510020

← Torna all'elenco delle funzionalità


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