A set of generic stream wrappers
Find a file
Roeland Jago Douma 8a1095e46c
fixup! Fix new loader
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2019-03-11 22:46:04 +01:00
src fixup! Fix new loader 2019-03-11 22:46:04 +01:00
tests Added a simple hash wrapper 2019-03-11 22:31:35 +01:00
.gitignore use vendor phpunit 2019-03-11 12:45:48 +01:00
.scrutinizer.yml add scrutinzer config 2019-03-11 17:01:22 +01:00
.travis.yml bump minimum php version to 5.6 and update test libs 2019-03-11 14:58:42 +01:00
composer.json bump minimum php version to 5.6 and update test libs 2019-03-11 14:58:42 +01:00
LICENCE Create LICENCE 2015-09-01 16:56:35 +02:00
README.md cleanup context handling for wrappers 2019-03-11 16:52:13 +01:00

Streams

Build Status Coverage Status Scrutinizer Code Quality

Generic stream wrappers for php.

CallBackWrapper

A CallBackWrapper can be used to register callbacks on read, write and closing of the stream, it wraps an existing stream and can thus be used for any stream in php

The callbacks are passed in the stream context along with the source stream and can be any valid php callable

Example

<?php

use \Icewind\Streams\CallBackWrapper;

require('vendor/autoload.php');

// get an existing stream to wrap
$source = fopen('php://temp', 'r+');

// register the callbacks
$stream = CallbackWrapper::wrap($source,
	// read callback
	function ($count) {
		echo "read " . $count . "bytes\n";
	},
	// write callback
	function ($data) {
		echo "wrote '" . $data . "'\n";
	},
	// close callback
	function () {
		echo "stream closed\n";
	});

fwrite($stream, 'some dummy data');

rewind($stream);
fread($stream, 5);

fclose($stream);

Note: due to php's internal stream buffering the $count passed to the read callback will be equal to php's internal buffer size (8192 on default) an not the number of bytes requested by fopen()