8.4 Einen eigenen Wrapper für Streams schreiben

Problem

Sie haben ein Objekt, aus dem Sie Daten mit einer Stream-Funktion auslesen wollen. Zum Beispiel wollen Sie die Wave-Daten aus „8.3 Einen eigenen Iterator implementieren“ mit file_get_contents() auslesen können.

Lösung

Implementieren Sie eine Wrapper-Klasse mit den Wrapper-Methoden stream_open(), stream_close(), stream_eof(), stream_flush(), stream_read() und stream_stat():

class SoundWrapper { private $soundGenerator; private $buffer; public function stream_open($path, $mode, $options, &$opened_path) { // Parameterpaare aus Pfad extrahieren. list($protocol,$specs) = explode("://",$path); $pairs = explode("/",$specs); // Default-Werte $length = 5; $frequency = 440; $amplitude = 1; $samplingRate ...

Get PHP 5 Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.