CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Sequenza predefinita di momenti✅❌❌❌❌❌
Eccezione all'esaurimento✅❌❌❌❌❌
Rifornimento push() al volo✅❌❌❌❌❌
Lettura della testa senza consumo✅❌❌❌❌❌
Totale🏆 400000

← Torna all'elenco delle funzionalità


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