PHPackages                             solcloud/curl - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. solcloud/curl

ActiveLibrary[HTTP &amp; Networking](/categories/http)

solcloud/curl
=============

Simple wrapper around cURL

v1.2.0(4y ago)21321MITPHPPHP &gt;= 7.1

Since Sep 27Pushed 4y ago1 watchersCompare

[ Source](https://github.com/solcloud/curl)[ Packagist](https://packagist.org/packages/solcloud/curl)[ RSS](/packages/solcloud-curl/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (4)Used By (1)

Curl
====

[](#curl)

Making http requests with ease.

Usage
-----

[](#usage)

Just setup `Request` object using setters and pass is to `CurlRequest`

```
use Solcloud\Curl\CurlRequest;
use Solcloud\Http\Request;

$curl = new CurlRequest();
$request = new Request();
$request
    ->setUrl('https://www.google.com/')
    ->setConnectionTimeoutSec(1)
    ->setRequestTimeoutSec(2)
    ->setHeaders([
        'X-header: x-value',
    ])
    ->setReferer('about:blank')
    ->setUserAgent('solcloud-curl')
;
$response = $curl->fetchResponse($request);

echo "GOT {$response->getStatusCode()}: {$response->getRealUrl()}" . PHP_EOL;
echo substr($response->getBody(), 0, 30) . '...' . PHP_EOL;
print_r($response->getLastHeaders());
```

For complete example see [example.php](example.php)

Interface
---------

[](#interface)

`CurlRequest` implements `\Solcloud\Http\Contract\IRequestDownloader` interface from `solcloud/http` package

```
public function fetchResponse(Request $request): Response;
```

Beside `CurlRequest`, there is also `FileResponse` and `StringResponse` implementations for easy *mocking* or *caching*.

```
/** @var \Solcloud\Http\Contract\IRequestDownloader $downloader  */
$downloader = new \Solcloud\Curl\FileResponse('/tmp/response.html');
$downloader->fetchResponse($request) // curl not needed
```

You can also use second constructor parameter `$modifyResponseCallback` for more complex behaviour.

```
use Solcloud\Curl\FileResponse;
use Solcloud\Http\Request;
use Solcloud\Http\Response;

$downloader = new FileResponse('/tmp/response.html', function (Request $request, Response $response): void {
    if ($request->getUrl() === 'badssl') {
        throw new \Solcloud\Curl\Exception\Specific\SSLException('SSL error');
    }
    if (rand(0, 1) === 0) {
        throw new \Solcloud\Http\Exception\ResponseException('Response error');
    }
    $response->setBody($response->getBody() . ' - modified');
});
$downloader->fetchResponse($request);
```

###  Health Score

24

—

LowBetter than 32% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~75 days

Total

3

Last Release

1543d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9e0e242163eae88198c915a9f34d9d18e4ac5c85b939e039189f91d918b242fe?d=identicon)[solcloud](/maintainers/solcloud)

---

Top Contributors

[![solcloud](https://avatars.githubusercontent.com/u/74121353?v=4)](https://github.com/solcloud "solcloud (6 commits)")

---

Tags

curlhttpphphttpcurlfetch

### Embed Badge

![Health badge](/badges/solcloud-curl/health.svg)

```
[![Health](https://phpackages.com/badges/solcloud-curl/health.svg)](https://phpackages.com/packages/solcloud-curl)
```

###  Alternatives

[rmccue/requests

A HTTP library written in PHP, for human beings.

3.6k34.5M258](/packages/rmccue-requests)[nategood/httpful

A Readable, Chainable, REST friendly, PHP HTTP Client

1.8k17.2M267](/packages/nategood-httpful)[mashape/unirest-php

Unirest PHP

1.3k9.7M161](/packages/mashape-unirest-php)[php-http/curl-client

PSR-18 and HTTPlug Async client with cURL

48247.0M384](/packages/php-http-curl-client)[smi2/phpclickhouse

PHP ClickHouse Client

83510.1M71](/packages/smi2-phpclickhouse)[pear/http_request2

Provides an easy way to perform HTTP requests.

764.2M48](/packages/pear-http-request2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
