CloudCastle Clock

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

PsrClockAdapter — Adapter für PSR-20-Uhren

Zweck

Umschließt beliebige Psr\Clock\ClockInterface mit dem erweiterten Vertrag des Pakets: fügt timestamp(), microtime(), timezone(), freeze(), withTimezone() hinzu.

Wofür und wie zu verwenden

Sanfte Migration: Uhren aus einer anderen Bibliothek (symfony, lcobucci...) funktionieren in allen APIs des Pakets: PsrClockAdapter::wrap($foreign).

Beispiel

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

Anti-Patterns

Die günstigen Primitive des Adapters materialisieren ehrlich den Zeitpunkt der inneren Uhr — die native SystemClock ist schneller.

Lebenszyklus

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

Funktionsvergleich mit Konkurrenten

Aspekt🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Adaptierung beliebiger PSR-20-Uhren✅✅❌❌✅❌
Erweiterter Vertrag über PSR hinaus✅❌❌❌❌❌
Kompatibilität mit den Dekoratoren des Pakets✅❌❌❌❌❌
freeze()-Snapshot fremder Uhren✅❌❌❌❌❌
Umhüllen beliebiger Objekte mit öffentlichem now() (Legacy)✅❌❌❌✅❌
Gesamt🏆 510020

← Zurück zur Funktionsliste


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