Skip to content

Commit 9856508

Browse files
committed
Forward compatibility with upcoming Promise v3
1 parent 85fdea5 commit 9856508

File tree

5 files changed

+20
-13
lines changed

5 files changed

+20
-13
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ jobs:
2626
uses: shivammathur/setup-php@v2
2727
with:
2828
php-version: ${{ matrix.php }}
29+
env:
30+
COMPOSER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2931
- run: composer install
3032
- run: vendor/bin/phpunit --coverage-text
3133
if: ${{ matrix.php >= 7.3 }}
@@ -35,6 +37,7 @@ jobs:
3537
PHPUnit-hhvm:
3638
name: PHPUnit (HHVM)
3739
runs-on: ubuntu-18.04
40+
if: false # temporarily skipped until https://github.com/azjezz/setup-hhvm/issues/3 is addressed
3841
steps:
3942
- uses: actions/checkout@v2
4043
- uses: azjezz/setup-hhvm@v1

composer.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,18 @@
1818
},
1919
"require": {
2020
"php": ">=5.3",
21-
"react/socket": "^1.9",
2221
"react/event-loop": "^1.2",
23-
"react/promise": "^2.1 || ^1.2.1",
24-
"react/promise-timer": "^1.1"
22+
"react/promise": "^3@dev || ^2.1 || ^1.2.1",
23+
"react/promise-timer": "^1.9",
24+
"react/socket": "dev-promise-3 as 1.12.0"
2525
},
2626
"require-dev": {
2727
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8"
28-
}
28+
},
29+
"repositories": [
30+
{
31+
"type": "vcs",
32+
"url": "https://github.com/WyriHaximus-labs/socket"
33+
}
34+
]
2935
}

src/ConnectionManagerRepeat.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use InvalidArgumentException;
77
use Exception;
88
use React\Promise\Promise;
9-
use React\Promise\CancellablePromiseInterface;
9+
use React\Promise\PromiseInterface;
1010

1111
class ConnectionManagerRepeat implements ConnectorInterface
1212
{
@@ -44,7 +44,7 @@ public function connect($uri)
4444
$tries = 0;
4545
$reject(new \RuntimeException('Cancelled'));
4646

47-
if ($pending instanceof CancellablePromiseInterface) {
47+
if ($pending instanceof PromiseInterface && \method_exists($pending, 'cancel')) {
4848
$pending->cancel();
4949
}
5050
});

src/Multiple/ConnectionManagerConcurrent.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,22 @@
22

33
namespace ConnectionManager\Extra\Multiple;
44

5-
use ConnectionManager\Extra\Multiple\ConnectionManagerConsecutive;
65
use React\Promise;
7-
use React\Promise\CancellablePromiseInterface;
6+
use React\Promise\PromiseInterface;
87

98
class ConnectionManagerConcurrent extends ConnectionManagerConsecutive
109
{
1110
public function connect($uri)
1211
{
1312
$all = array();
1413
foreach ($this->managers as $connector) {
15-
/* @var $connection Connector */
1614
$all []= $connector->connect($uri);
1715
}
1816
return Promise\any($all)->then(function ($conn) use ($all) {
1917
// a connection attempt succeeded
2018
// => cancel all pending connection attempts
2119
foreach ($all as $promise) {
22-
if ($promise instanceof CancellablePromiseInterface) {
20+
if ($promise instanceof PromiseInterface && \method_exists($promise, 'cancel')) {
2321
$promise->cancel();
2422
}
2523

src/Multiple/ConnectionManagerConsecutive.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
namespace ConnectionManager\Extra\Multiple;
44

5-
use React\Socket\ConnectorInterface;
65
use React\Promise;
6+
use React\Promise\PromiseInterface;
7+
use React\Socket\ConnectorInterface;
78
use UnderflowException;
8-
use React\Promise\CancellablePromiseInterface;
99

1010
class ConnectionManagerConsecutive implements ConnectorInterface
1111
{
@@ -54,7 +54,7 @@ public function tryConnection(array $managers, $uri)
5454
$managers = array();
5555
$reject(new \RuntimeException('Cancelled'));
5656

57-
if ($pending instanceof CancellablePromiseInterface) {
57+
if ($pending instanceof PromiseInterface && \method_exists($pending, 'cancel')) {
5858
$pending->cancel();
5959
}
6060
});

0 commit comments

Comments
 (0)