|
1 | 1 | <?php |
2 | 2 |
|
| 3 | +declare(strict_types=1); |
3 | 4 |
|
4 | 5 | use React\EventLoop\Factory; |
5 | 6 | use ReactParallel\EventLoop\EventLoopBridge; |
6 | | -use function React\Promise\all; |
7 | 7 | use ReactParallel\Pool\Infinite\Direct; |
8 | 8 |
|
| 9 | +use function React\Promise\all; |
| 10 | + |
9 | 11 | $json = file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . 'large.json'); |
10 | 12 |
|
11 | 13 | require dirname(__DIR__) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; |
|
14 | 16 |
|
15 | 17 | $infinite = new Direct($loop, new EventLoopBridge($loop), 1); |
16 | 18 |
|
17 | | -$promises = []; |
18 | | -$signalHandler = function () use ($infinite, $loop) { |
| 19 | +$promises = []; |
| 20 | +$signalHandler = static function () use ($infinite, $loop): void { |
19 | 21 | $loop->stop(); |
20 | 22 | $infinite->close(); |
21 | 23 | }; |
22 | 24 |
|
23 | | -$tick = function () use (&$promises, $infinite, $loop, $signalHandler, $json, &$tick) { |
| 25 | +$tick = static function () use (&$promises, $infinite, $loop, $signalHandler, $json, &$tick): void { |
24 | 26 | if (count($promises) < 1000) { |
25 | | - $promises[] = $infinite->run(function($json) { |
| 27 | + $promises[] = $infinite->run(static function ($json) { |
26 | 28 | $json = json_decode($json, true); |
| 29 | + |
27 | 30 | return md5(json_encode($json)); |
28 | 31 | }, [$json]); |
29 | 32 | $loop->futureTick($tick); |
| 33 | + |
30 | 34 | return; |
31 | 35 | } |
32 | 36 |
|
33 | | - all($promises)->then(function ($v) { |
| 37 | + all($promises)->then(static function ($v): void { |
34 | 38 | var_export($v); |
35 | | - })->always(function () use ($infinite, $loop, $signalHandler) { |
| 39 | + })->always(static function () use ($infinite, $loop, $signalHandler): void { |
36 | 40 | $infinite->close(); |
37 | 41 | $loop->removeSignal(SIGINT, $signalHandler); |
38 | 42 | $loop->stop(); |
39 | 43 | })->done(); |
40 | | - |
41 | 44 | }; |
42 | 45 | $loop->futureTick($tick); |
43 | 46 |
|
|
0 commit comments