sunrise / http-client-curl
Simple HTTP cURL client for PHP 8.1+ implementing PSR-18.
Installs: 5 085
Dependents: 1
Suggesters: 0
Security: 0
Stars: 16
Watchers: 4
Forks: 2
Open Issues: 2
Requires
- php: >=8.1
- ext-curl: *
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0 || ^2.0
Requires (Dev)
- php-di/php-di: ^7.0
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.11
- sunrise/http-message: ^3.4
- vimeo/psalm: ^6.5
Provides
- dev-master
- v2.0.0
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-renovate/phpunit-phpunit-12.x
- dev-release/v2.0.0
- dev-renovate/phpunit-phpunit-9.x
- dev-renovate/psr-http-message-2.x
- dev-renovate/sunrise-http-factory-2.x
- dev-release/v1.4.5
- dev-release/v1.4.4
- dev-release/v1.4.3
- dev-release/v1.4.1
- dev-release/v1.4.0
- dev-release/v1.3.0
This package is auto-updated.
Last update: 2025-02-15 23:52:29 UTC
README
Installation
composer require sunrise/http-client-curl
Quick Start
composer require sunrise/http-message
use Sunrise\Http\Client\Curl\Client; use Sunrise\Http\Message\RequestFactory; use Sunrise\Http\Message\ResponseFactory; $client = new Client(new ResponseFactory()); $request = (new RequestFactory())->createRequest('GET', 'https://www.php.net/'); $response = $client->sendRequest($request); echo $response->getStatusCode(), PHP_EOL;
cURL options
use Sunrise\Http\Client\Curl\Client; use Sunrise\Http\Message\ResponseFactory; use const CURLOPT_AUTOREFERER; use const CURLOPT_FOLLOWLOCATION; $client = new Client(new ResponseFactory(), [ CURLOPT_AUTOREFERER => true, CURLOPT_FOLLOWLOCATION => true, ]);
Parallel execution of multiple requests
use Sunrise\Http\Client\Curl\Client; use Sunrise\Http\Client\Curl\MultiRequest; use Sunrise\Http\Message\RequestFactory; use Sunrise\Http\Message\ResponseFactory; $client = new Client(new ResponseFactory()); $multiRequest = new MultiRequest( foo: (new RequestFactory())->createRequest('GET', 'https://www.php.net/'), bar: (new RequestFactory())->createRequest('GET', 'https://www.php.net/'), ) $responses = $client->sendRequest($multiRequest)->getResponses(); foreach ($responses as $key => $response) { // Note that you can get the response's request by its key... echo sprintf('%s => %d', $multiRequest->getRequests()[$key]->getUri(), $response->getStatusCode()), PHP_EOL; }
PHP-DI definitions
use DI\ContainerBuilder; use Psr\Http\Client\ClientInterface; $containerBuilder = new ContainerBuilder(); $containerBuilder->addDefinition(__DIR__ . '/../vendor/sunrise/http-client-curl/resources/definitions/client.php'); $container = $containerBuilder->build(); // See above for usage examples. $client = $container->get(ClientInterface::class);
Tests
composer test