Skip to content

Commit 3c12eaf

Browse files
authored
Merge pull request #34 from clue-labs/default-loop
Simplify examples by updating to new default loop
2 parents b2b7519 + 848be49 commit 3c12eaf

File tree

6 files changed

+19
-37
lines changed

6 files changed

+19
-37
lines changed

README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,14 @@ gzip file stream into an decompressor which emits decompressed data events for
3939
each individual log file chunk:
4040

4141
```php
42-
$loop = React\EventLoop\Factory::create();
43-
$stream = new React\Stream\ReadableResourceStream(fopen('access.log.gz', 'r'), $loop);
42+
$stream = new React\Stream\ReadableResourceStream(fopen('access.log.gz', 'r'));
4443

4544
$decompressor = new Clue\React\Zlib\Decompressor(ZLIB_ENCODING_GZIP);
4645
$stream->pipe($decompressor);
4746

4847
$decompressor->on('data', function ($data) {
4948
echo $data; // chunk of decompressed log data
5049
});
51-
52-
$loop->run();
5350
```
5451

5552
See also the [examples](examples).

composer.json

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,11 @@
1313
"require": {
1414
"php": ">=7.0",
1515
"ext-zlib": "*",
16-
"react/stream": "^1.0 || ^0.7 || ^0.6"
16+
"react/stream": "^1.2"
1717
},
1818
"require-dev": {
1919
"phpunit/phpunit": "^9.3 || ^6.5",
20-
"react/event-loop": "^1.0 || ^0.5 || ^0.4 || ^0.3"
21-
},
22-
"suggest": {
23-
"ext-zlib": "Requires ext-zlib extension"
20+
"react/event-loop": "^1.2"
2421
},
2522
"autoload": {
2623
"psr-4": { "Clue\\React\\Zlib\\": "src/" }

examples/91-benchmark-compress.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
//
1616
// $ dd if=/dev/zero bs=1M count=1k status=progress | gzip > /dev/null
1717

18+
use React\EventLoop\Loop;
19+
1820
require __DIR__ . '/../vendor/autoload.php';
1921

2022
if (DIRECTORY_SEPARATOR === '\\') {
@@ -26,11 +28,9 @@
2628
echo 'NOTICE: The "xdebug" extension is loaded, this has a major impact on performance.' . PHP_EOL;
2729
}
2830

29-
$loop = React\EventLoop\Factory::create();
30-
3131
// read 1 MiB * 1 Ki times
3232
$count = 0;
33-
$stream = new React\Stream\ReadableResourceStream(fopen('/dev/zero', 'r'), $loop, 1024*1024);
33+
$stream = new React\Stream\ReadableResourceStream(fopen('/dev/zero', 'r'), null, 1024*1024);
3434
$stream->on('data', function () use (&$count, $stream) {
3535
if (++$count > 1024) {
3636
$stream->close();
@@ -47,17 +47,15 @@
4747
});
4848

4949
// report progress periodically
50-
$timer = $loop->addPeriodicTimer(0.05, function () use (&$bytes) {
50+
$timer = Loop::addPeriodicTimer(0.05, function () use (&$bytes) {
5151
echo "\rCompressed $bytes bytes…";
5252
});
5353

5454
// report results once the stream closes
5555
$start = microtime(true);
56-
$stream->on('close', function () use (&$bytes, $start, $loop, $timer) {
56+
$stream->on('close', function () use (&$bytes, $start, $timer) {
5757
$time = microtime(true) - $start;
58-
$loop->cancelTimer($timer);
58+
Loop::cancelTimer($timer);
5959

6060
echo "\rCompressed $bytes bytes in " . round($time, 1) . 's => ' . round($bytes / $time / 1000000, 1) . ' MB/s' . PHP_EOL;
6161
});
62-
63-
$loop->run();

examples/92-benchmark-decompress.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
//
2020
// $ php examples/gunzip.php < null.gz | dd of=/dev/zero status=progress
2121

22+
use React\EventLoop\Loop;
23+
2224
require __DIR__ . '/../vendor/autoload.php';
2325

2426
if (DIRECTORY_SEPARATOR === '\\') {
@@ -35,9 +37,7 @@
3537
echo 'NOTICE: The "xdebug" extension is loaded, this has a major impact on performance.' . PHP_EOL;
3638
}
3739

38-
$loop = React\EventLoop\Factory::create();
39-
40-
$in = new React\Stream\ReadableResourceStream(fopen($argv[1], 'r'), $loop);
40+
$in = new React\Stream\ReadableResourceStream(fopen($argv[1], 'r'));
4141
$stream = new Clue\React\Zlib\Decompressor(ZLIB_ENCODING_GZIP);
4242
$in->pipe($stream);
4343

@@ -49,17 +49,15 @@
4949
$stream->on('error', 'printf');
5050

5151
//report progress periodically
52-
$timer = $loop->addPeriodicTimer(0.2, function () use (&$bytes) {
52+
$timer = Loop::addPeriodicTimer(0.2, function () use (&$bytes) {
5353
echo "\rDecompressed $bytes bytes…";
5454
});
5555

5656
// show stats when stream ends
5757
$start = microtime(true);
58-
$stream->on('close', function () use (&$bytes, $start, $loop, $timer) {
58+
$stream->on('close', function () use (&$bytes, $start, $timer) {
5959
$time = microtime(true) - $start;
60-
$loop->cancelTimer($timer);
60+
Loop::cancelTimer($timer);
6161

6262
echo "\rDecompressed $bytes bytes in " . round($time, 1) . 's => ' . round($bytes / $time / 1000000, 1) . ' MB/s' . PHP_EOL;
6363
});
64-
65-
$loop->run();

examples/gunzip.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@
77
exit(1);
88
}
99

10-
$loop = React\EventLoop\Factory::create();
11-
12-
$in = new React\Stream\ReadableResourceStream(STDIN, $loop);
13-
$out = new React\Stream\WritableResourceStream(STDOUT, $loop);
10+
$in = new React\Stream\ReadableResourceStream(STDIN);
11+
$out = new React\Stream\WritableResourceStream(STDOUT);
1412

1513
$decompressor = new Clue\React\Zlib\Decompressor(ZLIB_ENCODING_GZIP);
1614
$in->pipe($decompressor)->pipe($out);
1715

1816
$decompressor->on('error', function ($e) {
1917
fwrite(STDERR, 'Error: ' . $e->getMessage() . PHP_EOL);
2018
});
21-
22-
$loop->run();

examples/gzip.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,8 @@
77
exit(1);
88
}
99

10-
$loop = React\EventLoop\Factory::create();
11-
12-
$in = new React\Stream\ReadableResourceStream(STDIN, $loop);
13-
$out = new React\Stream\WritableResourceStream(STDOUT, $loop);
10+
$in = new React\Stream\ReadableResourceStream(STDIN);
11+
$out = new React\Stream\WritableResourceStream(STDOUT);
1412

1513
$compressor = new Clue\React\Zlib\Compressor(ZLIB_ENCODING_GZIP);
1614
$in->pipe($compressor)->pipe($out);
17-
18-
$loop->run();

0 commit comments

Comments
 (0)