CloudCastle Clock

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

QueueClock — reloj de cola

Propósito

Entrega momentos predefinidos uno a uno; el agotamiento de la cola es una excepción tipada: una llamada de más a now() se ve de inmediato.

Para qué y cómo utilizarlo

Escenarios exactos: «primera llamada — 10:00, segunda — 10:05». push() alimenta la cola, remaining()/isEmpty() — control.

Ejemplo

$clock = QueueClock::from('2026-01-01 10:00:00', '2026-01-01 10:05:00');
$clock->now();       // 10:00:00
$clock->now();       // 10:05:00
$clock->now();       // InvalidClockValueException: the queue is empty

Antipatrones

No sirve para bucles largos con un número desconocido de lecturas — la cola es finita por construcción.

Ciclo de vida

flowchart LR
    A[m1, m2, m3] -->|now| B(m1)
    B -->|now| C(m2)
    C -->|now| D(m3)
    D -->|now| E[/InvalidClockValueException/]

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

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Secuencia de momentos predefinida✅❌❌❌❌❌
Excepción al agotarse✅❌❌❌❌❌
Alimentación push() sobre la marcha✅❌❌❌❌❌
Lectura de la cabeza sin consumirla✅❌❌❌❌❌
Total🏆 400000

← A la lista de características


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