PHP SPL: Queue

Wer mit PHP eine performante Warteschlange realisieren will, dem sei es mit einer SplQueue geholfen, die ebenfalls ab  der PHP Version 5.3.0 vorhanden ist.
Die Funktionsweise an sich ist relativ einfach, die SplQueue arbeitet nach dem FIFO Prinzip und implementiert die SplDoublyLinkedList über die bereits Matthias einen Beitrag verfasst hatte.
Die wichtigsten Methoden sind:

  • enqueue() – Element ans Ende der Warteschlange hinzufügen.
  • dequeue() – Das Erste Element aus der Warteschlange herausnehmen.

Folgendes Beispiel soll die Nutzung verdeutlichen:

enqueue('research');
$queue->enqueue('planning');
$queue->enqueue('development');
$queue->dequeue();
$queue->dequeue();
echo $queue->top() . PHP_EOL; // development

Und da wir bei einer SplQueue über den ArrayAccess-Interface verfügen, können wir die Elemente auch nach dem folgenden Schema hinzufügen.

dequeue();
$queue->dequeue();
echo $queue->top() . PHP_EOL; // development

Ein praktischer Einsatz von SplQueue wäre mit Sicherheit es in PHP Daemons zu verwenden, wo auf Performance und geringen Speicherverbrauch Wert gelegt wird.
Wer mehr Beispiele haben will oder herausfinden will wo die SplQueue alles verwendet wird, kann sich durchs GitHub durchstöbern.