cURL object wrapper.





Fund package maintenance!

v3.0.4 2020-12-24 19:03 UTC


This library wraps PHP's native cURL extension functions with objects, for better code readability and testability.

Why? We wanted to lay an object oriented foundation for PHP.Gt/Fetch, our PHP implementation of the web's fetch API that uses cURL to create asynchronous HTTP calls with promises.

Build status Code quality Code coverage Current version PHP.Gt/Curl documentation

Example usage: Get a JSON object from a remote source

When working with HTTP calls, it is extremely common to work with JSON. This library removes the need of a lot of boilerplate code by buffering the output of exec() calls for easy retrieval later with output() or outputJson().

Example using PHP.Gt/Curl:

$curl = new Curl("");
$json = $curl->outputJson();
echo "Latest build status: " . $json[0]->status;

Same example using PHP's native curl_* functions:

// Using native functionality to achieve the same:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if(false === $result) {
	die("CURL error: " . curl_error($ch));
$json = json_decode($result);
if(is_null($json)) {
	die("JSON decoding error: " . json_last_error_msg());
echo "Latest build status: " . $json[0]->status;