Roeland Jago Douma db4235d587 Update icewind/streams | 6 سال پیش | |
---|---|---|
.. | ||
src | db4235d587 Update icewind/streams | 6 سال پیش |
.gitignore | d2255a1d30 New SMB storage backend | 9 سال پیش |
.travis.yml | db4235d587 Update icewind/streams | 6 سال پیش |
LICENCE | dfbd85d723 update icewind/streams to 0.4.0 and icewind/smb to 1.0.7 in files_external | 8 سال پیش |
README.md | db4235d587 Update icewind/streams | 6 سال پیش |
composer.json | dfbd85d723 update icewind/streams to 0.4.0 and icewind/smb to 1.0.7 in files_external | 8 سال پیش |
Generic stream wrappers for php.
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()