From a78fa1f829701759194cfa5d34b5b376ca7e8972 Mon Sep 17 00:00:00 2001 From: Ayesh Karunaratne Date: Sun, 22 Nov 2020 02:35:53 +0700 Subject: [PATCH] PHP 8: Add support for CurlHandle resource objects In PHP 8.0, [Curl resources are changed to CurlHandle class objects](https://php.watch/versions/8.0/resource-CurlHandle#is-resource). This changes DocBlock parameters and other areas where provided handles are checked with `is_resource()`, which now needs to account for the replaced `CurlHandle` class objects. --- src/Client.php | 2 +- src/PromiseCore.php | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Client.php b/src/Client.php index f6b844c..739fdc2 100644 --- a/src/Client.php +++ b/src/Client.php @@ -53,7 +53,7 @@ class Client implements HttpClient, HttpAsyncClient /** * cURL synchronous requests handle. * - * @var resource|null + * @var resource|\CurlHandle|null */ private $handle; diff --git a/src/PromiseCore.php b/src/PromiseCore.php index 2b0256d..e5a649a 100644 --- a/src/PromiseCore.php +++ b/src/PromiseCore.php @@ -69,9 +69,9 @@ class PromiseCore /** * Create shared core. * - * @param RequestInterface $request HTTP request. - * @param resource $handle cURL handle. - * @param ResponseBuilder $responseBuilder Response builder. + * @param RequestInterface $request HTTP request. + * @param resource|CurlHandle $handle cURL handle. + * @param ResponseBuilder $responseBuilder Response builder. * * @throws \InvalidArgumentException If $handle is not a cURL resource. */ @@ -80,7 +80,7 @@ public function __construct( $handle, ResponseBuilder $responseBuilder ) { - if (!is_resource($handle)) { + if (!is_resource($handle) && !(is_object($handle) && $handle instanceof \GdImage)) { throw new \InvalidArgumentException( sprintf( 'Parameter $handle expected to be a cURL resource, %s given', @@ -89,7 +89,7 @@ public function __construct( ); } - if (get_resource_type($handle) !== 'curl') { + if (is_resource($handle) && get_resource_type($handle) !== 'curl') { throw new \InvalidArgumentException( sprintf( 'Parameter $handle expected to be a cURL resource, %s resource given', @@ -138,7 +138,7 @@ public function addOnRejected(callable $callback): void /** * Return cURL handle. * - * @return resource + * @return resource|\CurlHandle */ public function getHandle() {