🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Secuencia de momentos predefinida | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Excepción al agotarse | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Alimentación push() sobre la marcha | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Lectura de la cabeza sin consumirla | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← A la lista de características
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano