🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
QueueClock — orologio a coda
Scopo
Restituisce momenti predefiniti uno alla volta; l'esaurimento della coda è un'eccezione tipizzata: una chiamata now() di troppo è visibile subito.
A cosa serve e come usarlo
Scenari precisi: «prima chiamata — 10:00, seconda — 10:05». push() rifornisce la coda, remaining()/isEmpty() la controllano.
Esempio
$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
Anti-pattern
Non è adatto per cicli lunghi con un numero sconosciuto di letture — la coda è finita per costruzione.
Ciclo di vita
flowchart LR
A[m1, m2, m3] -->|now| B(m1)
B -->|now| C(m2)
C -->|now| D(m3)
D -->|now| E[/InvalidClockValueException/]
Confronto della funzionalità con gli analoghi
| Aspetto | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Sequenza predefinita di momenti | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Eccezione all'esaurimento | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Rifornimento push() al volo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Lettura della testa senza consumo | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Totale | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano