diff --git a/composer.json b/composer.json index fa62c43..01075a9 100644 --- a/composer.json +++ b/composer.json @@ -18,10 +18,10 @@ }, "require": { "php": ">=5.3", - "react/socket": "^1.9", "react/event-loop": "^1.2", - "react/promise": "^2.1 || ^1.2.1", - "react/promise-timer": "^1.1" + "react/promise": "^3 || ^2.1 || ^1.2.1", + "react/promise-timer": "^1.9", + "react/socket": "^1.12" }, "require-dev": { "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8" diff --git a/src/ConnectionManagerRepeat.php b/src/ConnectionManagerRepeat.php index 10f3f5a..5151610 100644 --- a/src/ConnectionManagerRepeat.php +++ b/src/ConnectionManagerRepeat.php @@ -6,7 +6,7 @@ use InvalidArgumentException; use Exception; use React\Promise\Promise; -use React\Promise\CancellablePromiseInterface; +use React\Promise\PromiseInterface; class ConnectionManagerRepeat implements ConnectorInterface { @@ -44,7 +44,7 @@ public function connect($uri) $tries = 0; $reject(new \RuntimeException('Cancelled')); - if ($pending instanceof CancellablePromiseInterface) { + if ($pending instanceof PromiseInterface && \method_exists($pending, 'cancel')) { $pending->cancel(); } }); diff --git a/src/Multiple/ConnectionManagerConcurrent.php b/src/Multiple/ConnectionManagerConcurrent.php index c1eb9cf..b6175f8 100644 --- a/src/Multiple/ConnectionManagerConcurrent.php +++ b/src/Multiple/ConnectionManagerConcurrent.php @@ -2,9 +2,8 @@ namespace ConnectionManager\Extra\Multiple; -use ConnectionManager\Extra\Multiple\ConnectionManagerConsecutive; use React\Promise; -use React\Promise\CancellablePromiseInterface; +use React\Promise\PromiseInterface; class ConnectionManagerConcurrent extends ConnectionManagerConsecutive { @@ -12,14 +11,13 @@ public function connect($uri) { $all = array(); foreach ($this->managers as $connector) { - /* @var $connection Connector */ $all []= $connector->connect($uri); } return Promise\any($all)->then(function ($conn) use ($all) { // a connection attempt succeeded // => cancel all pending connection attempts foreach ($all as $promise) { - if ($promise instanceof CancellablePromiseInterface) { + if ($promise instanceof PromiseInterface && \method_exists($promise, 'cancel')) { $promise->cancel(); } diff --git a/src/Multiple/ConnectionManagerConsecutive.php b/src/Multiple/ConnectionManagerConsecutive.php index 1474b85..b3bfd4c 100644 --- a/src/Multiple/ConnectionManagerConsecutive.php +++ b/src/Multiple/ConnectionManagerConsecutive.php @@ -2,10 +2,10 @@ namespace ConnectionManager\Extra\Multiple; -use React\Socket\ConnectorInterface; use React\Promise; +use React\Promise\PromiseInterface; +use React\Socket\ConnectorInterface; use UnderflowException; -use React\Promise\CancellablePromiseInterface; class ConnectionManagerConsecutive implements ConnectorInterface { @@ -54,7 +54,7 @@ public function tryConnection(array $managers, $uri) $managers = array(); $reject(new \RuntimeException('Cancelled')); - if ($pending instanceof CancellablePromiseInterface) { + if ($pending instanceof PromiseInterface && \method_exists($pending, 'cancel')) { $pending->cancel(); } });