adrii/curl-helper

CurlHelper is a streamlined PHP utility for easy cURL usage, supporting GET, POST, PUT, and DELETE methods. It simplifies HTTP requests by offering straightforward options and header settings, making web API interactions more accessible and efficient.

1.9.3 2024-04-24 14:31 UTC

This package is auto-updated.

Last update: 2024-10-24 15:34:22 UTC


README

Original author: Adrii

Test Latest Stable Version Total Downloads License

CurlHelper is a streamlined PHP utility for easy cURL usage, supporting GET, POST, PUT, and DELETE methods. It simplifies HTTP requests by offering straightforward options and header settings, making web API interactions more accessible and efficient.

Features

  • Versatile HTTP Support: GET, POST, PUT, and DELETE methods are all supported, catering to a wide range of API interactions.
  • Header & Option Customization: Effortlessly configure request headers and cURL options to meet the precise needs of every API call.
  • File Uploads: Simplified multipart/form-data handling makes file uploads a breeze.
  • Data Flexibility: Easily switch between raw and array data inputs, with automatic content type handling for JSON and form-urlencoded data.
  • Debug Mode: Activate detailed logging for troubleshooting and optimization, gaining insight into request and response cycles.

Requirements

  • PHP 7.4 or higher
  • cURL extension enabled in PHP

Installation

You can copy the CurlHelper class into your project, or preferably, autoload it using Composer.

composer require adrii/curl-helper

Composer

use Adrii\CurlHelper;

Manual

require_once ROOT . 'CurlHelper.php';

Usage

$curl = new CurlHelper();

Methods

This section provides a quick start for users to understand how to apply the CurlHelper class in their projects for various HTTP requests, setting custom headers, and enabling debug mode for detailed request and response insights.

GET Request

$curl->setUrl('http://example.com/api/data');
$curl->setGetParams(['key' => 'value']);
$curl->execute();
$response = $curl->response();

POST Request

$curl->setUrl('http://example.com/api/data');
$curl->setPostParams(['key' => 'value']);
$curl->execute();
$response = $curl->response();

PUT Request

$curl = new CurlHelper();
$curl->setUrl('https://example.com/api/data/1');
$curl->setPutParams(['key' => 'updatedValue']);
$curl->execute();
$response = $curl->response();

DELETE Request

$curl = new CurlHelper();
$curl->setUrl('https://example.com/api/data/1');
$curl->execute();
$response = $curl->response();

Setting Custom Headers

$curl->setUrl('http://example.com/api/data');
$curl->setPostParams(['key' => 'value']);
$curl->execute();
$response = $curl->response();

Enabling Debug Mode

$curl->setDebug();
$curl->execute();
$debugInfo = $curl->debug();

Handling Errors

The execute method throws an exception if the cURL request fails. Make sure to catch these exceptions and handle them accordingly.

try {
    $curl->execute();
} catch (\Exception $e) {
    echo "Error: " . $e->getMessage();
}

Example

These examples cover basic usage scenarios for CurlHelper. Modify parameters and URLs as needed to fit your specific use case.

$url    = '{url}';
$basic  = '{basic}';

$curl = new CurlHelper();

$curl->setUrl($url);

$curl->setPostParams([
    'param' => '{param}',
    'type' => '{type}'
]);

$curl->setHeaders([
    "Authorization" => "Basic {$basic}"
], false); // Disable parse (dafault Enabled:true) 

$curl->setOptions([
    CURLOPT_HTTP_VERSION   => CURL_HTTP_VERSION_2_0,
    CURLOPT_CONNECTTIMEOUT => 30,
]);

$curl->setMime("json");

$curl->setUtf8();

$curl->execute();

$response   = $curl->response();
$code       = $curl->http_code();

list($error, $msg) = $curl->parseCode();

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

CurlHelper is open-sourced software licensed under the MIT