Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/php-guard/curl
PHP Curl wrapper. Alternative to "https://github.com/php-curl-class/php-curl-class" with CurlRequest and CurlResponse objects
https://github.com/php-guard/curl
composer curl curl-multi http json packagist php php-curl php-curl-library php7 proxy
Last synced: about 1 month ago
JSON representation
PHP Curl wrapper. Alternative to "https://github.com/php-curl-class/php-curl-class" with CurlRequest and CurlResponse objects
- Host: GitHub
- URL: https://github.com/php-guard/curl
- Owner: php-guard
- License: gpl-3.0
- Created: 2018-10-03T19:58:13.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-04-27T15:49:13.000Z (over 5 years ago)
- Last Synced: 2024-04-24T13:17:55.248Z (8 months ago)
- Topics: composer, curl, curl-multi, http, json, packagist, php, php-curl, php-curl-library, php7, proxy
- Language: PHP
- Homepage:
- Size: 79.1 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# curl
[![Build Status](https://scrutinizer-ci.com/g/php-guard/curl/badges/build.png?b=master)](https://scrutinizer-ci.com/g/php-guard/curl/build-status/master)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/php-guard/curl/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/php-guard/curl/?branch=master)
[![Code Coverage](https://scrutinizer-ci.com/g/php-guard/curl/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/php-guard/curl/?branch=master)
[![GPL Licence](https://badges.frapsoft.com/os/gpl/gpl.png?v=103)](https://opensource.org/licenses/GPL-3.0/)This library is an alternative to "https://github.com/php-curl-class/php-curl-class".
Easy use with CurlRequest and CurlResponse objects.### Installation
Install via [Composer](https://getcomposer.org/)
$ composer require php-guard/curl
### Requirements- php: ^7.1
### Usage
##### Quick Start
require __DIR__ . '/vendor/autoload.php';
use \PhpGuard\Curl\Curl;
use \PhpGuard\Curl\CurlError;
$this->curl = new Curl();
try {
// Execute a single request
$response = $this->curl->get('http://example.com'); // Return a CurlResponse
echo $response->raw();// Execute multiple requests
$responses = $this->curl->multi() // Create a MultiCurl object
->get('http://example.com') // Add a get request
->post('http://example.com') // Add a post request
->execute(); // Return an array of CurlResponseforeach ($responses as $response) {
echo $response->raw();
}
} catch (CurlError $e) {
echo 'Error: ' . $curl->getCode(). ': ' . $curl->getMessage(). "\n";
}##### Available Methods
**\PhpGuard\Curl\Curl**
HTTP methods
get(string $url, $query = null, array $headers = []): CurlResponse
post(string $url, $data = null, $query = null, array $headers = []): CurlResponse
put(string $url, $data = null, $query = null, array $headers = []): CurlResponse
patch(string $url, $data = null, $query = null, array $headers = []): CurlResponse
delete(string $url, $data = null, $query = null, array $headers = []): CurlResponse
Run a single request
execute(CurlRequest $request): CurlResponsePrepare multiple requests
multi(array $options = []): MultiCurl
Edit request and response processing (advanced usage)getCurlRequestFactory(): CurlRequestFactory
getRequestModifierPipeline(): RequestModifierPipeline**\PhpGuard\Curl\CurlRequest**
You can use Curl to execute requests or you can use
the CurlRequestFactory to return CurlRequest instances.Properties url, method and data have getters and setters.
The method `setHeaderContentType(string $contentType)` is a shortcut for
$curlRequest->getHeaders['Content-Type'] = $contentType
Other methodsexecute(bool $throwExceptionOnHttpError = false): CurlResponse
getCurlOptions(): CurlOptions
getHeaders(): Headers**\PhpGuard\Curl\MultiCurl**
get(string $url, $query = null, array $headers = []): self
post(string $url, $data = null, $query = null, array $headers = []): self
put(string $url, $data = null, $query = null, array $headers = []): self
patch(string $url, $data = null, $query = null, array $headers = []): self
delete(string $url, $data = null, $query = null, array $headers = []): self
execute(): CurlResponse[]**\PhpGuard\Curl\CurlResponse**
statusCode(): int
isError(): bool // True if status code >= 300
headers(): Headers
raw() // Raw content of the response
json() // Array or false if not a json response
**\PhpGuard\Curl\CurlRequestFactory**Set the base url for all requests
setBaseUrl(?string $baseUrl): self
Set the option curl CURLOPT_SSL_VERIFYPEER
setSslVerifyPeer(bool $value): self
Create a CurlRequestcreate(string $method, string $url, $data = null, $query = null, array $headers = []): CurlRequest
Edit other default curl options
getDefaultCurlOptions(): CurlOptions
getDefaultHeaders(): Headers**\PhpGuard\Curl\Collection\CurlOptions**
This class implements `\ArrayAccess`. It can therefore be used as an array.
**\PhpGuard\Curl\Collection\Headers**
This class implements `\ArrayAccess`. It can therefore be used as an array.
In addition, the keys are case insensitive.
**\PhpGuard\Curl\RequestModifierPipeline**
Add an object to modify CURL requests
pipe(RequestModifierInterface $requestModifier): self
By default, FileRequestModifier and PlainTextRequestModifier are active.
If necessary, you can add an instance of ProxyRequestModifier* ProxyRequestModifier allows you to define curl options to use a proxy
* FileRequestModifier is used to manage file paths starting with @
and passed as a parameter by transforming them into CurlFile
and then modifying the HTTP Content-Type header.* PlainTextRequestModifier changes the HTTP Content-Type header
to text/plain when a string is passed as a parameter.