krinfreschi / async-streams

v0.0.3 2014-07-27 18:49 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:32:02 UTC


README

围绕 reactphp 的异步流封装

灵感来自 guzzle/streams

##安装

可以使用 Composer 简单地安装此包。只需将以下内容添加到项目根目录下的 composer.json 文件中

{
  "require": {
    "krinfreschi/async-streams": "0.0.*"
  }
}

然后使用 composer.phar install 安装您的依赖项。

##全局函数

async_stream_register_read(resource $handle, callable $callable) //$callable will receive args: $handle
async_stream_remove_read(resource $handle)
async_stream_register_write(resource $handle, callable $callable) //$callable will receive args: $handle, $written, $unwritten
async_stream_remove_write(resource $handle)

##示例

use krinfreschi\AsyncStreams\AsyncStreamWrapper;

require_once "vendor/autoload.php";

$resource = fopen('php://temp', 'r+');
$handle = AsyncStreamWrapper::make($resource);
fwrite($handle, 'data');

async_stream_register_write($handle, function($handle, $written, $unwritten) {
    fseek($handle, 0);
    var_dump(stream_get_contents($handle));
    fclose($handle);
});

AsyncStreamWrapper::run();