Skip to content

Commit 4b263ac

Browse files
authored
Merge pull request #34 from clue-labs/promise-v3
Forward compatibility with upcoming Promise v3
2 parents cff1c7b + e6bcf6f commit 4b263ac

File tree

4 files changed

+10
-12
lines changed

4 files changed

+10
-12
lines changed

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@
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 || ^2.1 || ^1.2.1",
23+
"react/promise-timer": "^1.9",
24+
"react/socket": "^1.12"
2525
},
2626
"require-dev": {
2727
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8"

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)