art4 / requests-psr18-adapter
Use WordPress/Requests as a PSR-18 HTTP client
1.0.1
2023-05-31 12:02 UTC
Requires
- php: ^7.1 || ^8.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- rmccue/requests: ^1.8 || ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^6 || ^7 || ^8 || ^9
- yoast/phpunit-polyfills: ^1.0.3
Provides
This package is auto-updated.
Last update: 2023-05-31 12:03:18 UTC
README
Use WordPress/Requests as a PSR-18 HTTP client adapter.
Requires PHP 7.1+
Why?
Requests is a HTTP library written in PHP, that lacks of support for PSR-7 and also for PSR-18 because of the compatability with PHP 5.6+.
I've created a PR in Requests to add PSR-7 support but I would be able to use it today. So I created this library. If one day Requests nativly supports PSR-7 and PSR-18, this library will become obsolete.
How to use
Installation with Composer
WordPress/Requests PSR-18 Adapter is available on Packagist and can be installed using Composer.
composer require art4/requests-psr18-adapter
Examples
Take a look at the examples directory for more examples.
<?php // First, include the Composer autoload.php require_once dirname(__DIR__) . '/vendor/autoload.php'; // Define Requests options $options = [ 'proxy' => '127.0.0.1:8080', 'transport' => $customTransport, // other Requests options ]; // Create the HTTP client $httpClient = new \Art4\Requests\Psr\HttpClient($options); // Create a PSR-7 request and optional set other headers $request = $httpClient->createRequest('GET', 'http://httpbin.org/get'); $request = $request->withHeader('Accept', 'application/json'); try { // Send the request $response = $httpClient->sendRequest($request); } catch (\Psr\Http\Client\ClientExceptionInterface $th) { // Handle errors throw $th; } // Use the PSR-7 Response var_dump($response);