🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
QueueClock — horloge en file d’attente
Objectif
Sert des instants prédéfinis un par un ; l’épuisement de la file lève une exception typée, si bien qu’un appel now() superflu est visible immédiatement.
À quoi ça sert et comment l’utiliser
Scénarios exacts : « premier appel — 10:00, deuxième — 10:05 ». push() complète la file, remaining()/isEmpty() permettent le contrôle.
Exemple
$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-modèles
Pas pour de longues boucles avec un nombre de lectures inconnu — la file est finie par construction.
Cycle de vie
flowchart LR
A[m1, m2, m3] -->|now| B(m1)
B -->|now| C(m2)
C -->|now| D(m3)
D -->|now| E[/InvalidClockValueException/]
Comparaison des fonctionnalités avec les concurrents
| Aspect | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
| Séquence d’instants prédéfinie | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Exception à l’épuisement | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
push() à la volée | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Lecture de la tête sans consommation | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Retour à la liste des fonctionnalités
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano