icewind / streams
一组通用的流包装器
v0.7.7
2023-03-16 14:52 UTC
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-09-05 20:41:01 UTC
README
Streams
PHP的通用流包装器。
CallBackWrapper
CallBackWrapper
可以用于在流的读取、写入和关闭时注册回调,它包装了一个现有的流,因此可以用于PHP中的任何流
回调函数将与源流一起传递到流上下文中,可以是任何有效的 PHP可调用函数
示例
<?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);
注意:由于PHP内部流缓冲,传递给读取回调的 $count
将等于PHP内部缓冲区大小(默认为8192),而不是 fopen()
请求的字节数