Skip to content

Commit

Permalink
Use reactphp/async instead of clue/reactphp-block
Browse files Browse the repository at this point in the history
  • Loading branch information
dinooo13 committed Oct 4, 2022
1 parent 3909651 commit 065c764
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 61 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ on:
jobs:
PHPUnit:
runs-on: ubuntu-20.04
timeout-minutes: 5
strategy:
matrix:
php:
Expand Down
21 changes: 12 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);
// response results successfully received
} catch (Exception $e) {
// an error occured while performing the request
}
Expand All @@ -177,15 +176,19 @@ try {
Similarly, you can also process multiple commands concurrently and await an array of results:

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

$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 065c764

Please sign in to comment.