🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| 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 | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Volver a la lista de características
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano