CloudCastle Clock

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

PsrClockAdapter — adaptador de reloj PSR-20

Propósito

Envuelve cualquier Psr\Clock\ClockInterface en el contrato extendido del paquete: añade timestamp(), microtime(), timezone(), freeze(), withTimezone().

Para qué y cómo utilizarlo

Migración fluida: los relojes de otra biblioteca (symfony, lcobucci...) funcionan en todas las API del paquete: PsrClockAdapter::wrap($foreign).

Ejemplo

$foreign = new \Symfony\Component\Clock\NativeClock();
$clock = PsrClockAdapter::wrap($foreign);
$clock->timestamp();     // works on top of any PSR-20 clock

Antipatrones

Las primitivas baratas del adaptador materializan honestamente el momento del reloj interno — el SystemClock nativo es más rápido.

Ciclo de vida

flowchart LR
    A[Any PSR-20 clock] --> B[PsrClockAdapter]
    B --> C[Extended ClockInterface]
    C --> D[TimeSpan / Deadline / decorators]

Comparación de la característica con análogos

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Adaptación de cualquier reloj PSR-20✅✅❌❌✅❌
Contrato extendido sobre PSR✅❌❌❌❌❌
Compatibilidad con los decoradores del paquete✅❌❌❌❌❌
Instantánea freeze() de relojes ajenos✅❌❌❌❌❌
Envoltura de cualquier objeto con now() público (legacy)✅❌❌❌✅❌
Total🏆 510020

← A la lista de características


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