CloudCastle Clock

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

ScaledClock — reloj con escala de tiempo

Propósito

Decorador: el tiempo virtual transcurre más rápido (scale > 1) o más lento (scale < 1) que el tiempo real desde el punto de creación.

Para qué y cómo usarlo

Simulaciones y demos: «un día por minuto», comprobación acelerada de escenarios basados en horarios.

Ejemplo

$fast = new ScaledClock(SystemClock::utc(), 60.0);  // a minute becomes an hour
sleep(1);
$fast->now();   // about a minute later in virtual time

Antipatrones

Una escala no positiva se rechaza con una excepción; para detener el tiempo utilice FrozenClock.

Ciclo de vida

flowchart LR
    A[Inner clock] -->|delta| B[ScaledClock]
    B -->|delta x scale| C[Virtual moment]
    C --> D[Consumer]

Comparación de la característica con alternativas

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Aceleración/ralentización del tiempo✅❌❌❌❌❌
Validación de la escala con excepción✅❌❌❌❌❌
Punto de referencia fijado en la creación✅❌❌❌❌❌
Composición con mocks para pruebas✅❌❌❌❌❌
Total🏆 400000

← Volver a la lista de características


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