lineten / php-curl-client
This package is abandoned and no longer maintained.
No replacement package was suggested.
A very simple and lightweight cURL helper for PHP
v1.0.3
2021-05-07 12:54 UTC
Requires
- php: >=5.3.0
- psr/http-message: ^1.0
- slim/psr7: ^1.0
This package is not auto-updated.
Last update: 2025-03-08 07:30:30 UTC
README
Problems solved:
- Guzzle is huge and complicated.
- As functionality is added, the files become larger for everyone.
Solutions:
- Custom cURL abstraction.
- Classes don't grow, instead new classes are added for each new bit of functionality.
Follows PSR-7
Example usage:
<?php require 'vendor/autoload.php'; header('Content-Type: text/plain;charset=utf-8'); use Lineten\CurlClient\Constant\ContentType; use Lineten\CurlClient\Constant\HttpRequestHeader; use Lineten\CurlClient\CurlMulti; use Lineten\CurlClient\CurlClient; use Lineten\CurlClient\CurlResponse; use Lineten\CurlClient\Request\Authorization; use Lineten\CurlClient\Request\Headers; use Lineten\CurlClient\Request\Json; use Lineten\CurlClient\Request\QueryParams; // Sync request echo 'Sync request'.PHP_EOL; echo '================================='.PHP_EOL; $response = CurlClient::post('https://example.com') ->with(new Json(['key'=>'value'])) ->with(new QueryParams(['test' => 1])) ->with(new Authorization('Bearer: abc')) ->with(new Headers(['X-Test: test'])) ->send(); $status = $response->getStatusCode(); $body = $response->getBody()->__toString(); echo 'StatusCode: '.$status.PHP_EOL; foreach($response->getHeaders() as $name => $headers) { foreach($headers as $value){ echo $name.': '.$value.PHP_EOL; } } echo PHP_EOL.$body.PHP_EOL; // Async request echo PHP_EOL; echo PHP_EOL; echo 'Async request'.PHP_EOL; echo '================================='.PHP_EOL; $request = CurlClient::get('https://google.com') ->with(new Json(['key'=>'value'])) ->with(new QueryParams(['test' => 1])) ->with(new Authorization('Bearer: abc')); $multi = new CurlMulti; $multi = $multi->add($request, function(CurlResponse $response){ $status = $response->getStatusCode(); $body = $response->getBody()->__toString(); echo 'StatusCode: '.$status.PHP_EOL; foreach($response->getHeaders() as $name => $headers) { foreach($headers as $value){ echo $name.': '.$value.PHP_EOL; } } echo PHP_EOL.$body.PHP_EOL; }); $multi->send(); // Use built-in helper functions $response = CurlClient::post('https://example.com') ->withJson(['key'=>'value']) ->withQueryParams(['test' => 1]); // Call it as an instance $client = new CurlClient; $request = $client->post('https://example.com'); $request = $request->with(new Authorization('Bearer: abc')); /** @var CurlResponse $response PSR-7 Response with extra methods that are specific to curl */ $response = $request->send();