Skip to content

Commit

Permalink
Merge pull request #77 from dinooo13/async
Browse files Browse the repository at this point in the history
Use reactphp/async instead of clue/reactphp-block
  • Loading branch information
clue authored Nov 22, 2022
2 parents 847aab4 + e6372ad commit f800f3a
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 64 deletions.
22 changes: 13 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,21 +154,20 @@ If this looks strange to you, you can also use the more traditional [blocking AP

As stated above, this library provides you a powerful, async API by default.

If, however, you want to integrate this into your traditional, blocking environment,
you should look into also using [clue/reactphp-block](https://github.com/clue/reactphp-block).

The resulting blocking code could look something like this:
You can also integrate this into your traditional, blocking environment by using
[reactphp/async](https://github.com/reactphp/async). This allows you to simply
await commands on the client like this:

```php
use Clue\React\Block;
use function React\Async\await;

$client = new Clue\React\Docker\Client();

$promise = $client->imageInspect('busybox');

try {
$results = Block\await($promise, Loop::get());
// resporesults successfully received
$results = await($promise);
// results successfully received
} catch (Exception $e) {
// an error occured while performing the request
}
Expand All @@ -177,15 +176,20 @@ try {
Similarly, you can also process multiple commands concurrently and await an array of results:

```php
use function React\Async\await;
use function React\Promise\all;

$promises = array(
$client->imageInspect('busybox'),
$client->imageInspect('ubuntu'),
);

$inspections = Block\awaitAll($promises, Loop::get());
$inspections = await(all($promises));
```

Please refer to [clue/reactphp-block](https://github.com/clue/reactphp-block#readme) for more details.
This is made possible thanks to fibers available in PHP 8.1+ and our
compatibility API that also works on all supported PHP versions.
Please refer to [reactphp/async](https://github.com/reactphp/async#readme) for more details.

#### Command streaming

Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"rize/uri-template": "^0.3"
},
"require-dev": {
"clue/block-react": "^1.5",
"react/async": "^4 || ^3 || ^2",
"clue/caret-notation": "^0.2",
"clue/tar-react": "^0.2",
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
Expand Down
Loading

0 comments on commit f800f3a

Please sign in to comment.