/** * @test */ public function itReadsToEnd() { $handle = $this->wrap(fopen('php://temp', 'w+')); fwrite($handle, 'data'); async_stream_register_write($handle, function ($handle) { fseek($handle, 0); $this->assertFalse(feof($handle)); fread($handle, 4); $this->assertTrue(feof($handle)); fclose($handle); }); $this->loop->run(); }
<?php use krinfreschi\AsyncStreams\AsyncStreamWrapper; require_once "vendor/autoload.php"; $resource = fopen('php://temp', 'r+'); $handle = AsyncStreamWrapper::make($resource); fwrite($handle, 'data'); async_stream_register_read($handle, function ($handle) { }); async_stream_register_write($handle, function ($handle, $written, $unwritten) { fseek($handle, 0); var_dump(stream_get_contents($handle)); fclose($handle); }); AsyncStreamWrapper::run();