setono / http-client-bundle
A Symfony bundle that decorates the http client with request logging
Installs: 6 693
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=7.4
- ext-json: *
- psr/log: ^1.1
- symfony/config: ^4.4 || ^5.4 || ^6.0
- symfony/dependency-injection: ^4.4 || ^5.4 || ^6.0
- symfony/http-client-contracts: ^2.3
- symfony/http-kernel: ^4.4 || ^5.4 || ^6.0
- symfony/service-contracts: ^2.2
Requires (Dev)
- phpunit/phpunit: ^9.5
- roave/security-advisories: dev-latest
- setono/code-quality-pack: ^2.2
- symfony/http-client: ^4.4 || ^5.4 || ^6.0
This package is auto-updated.
Last update: 2022-09-16 08:28:15 UTC
README
USE https://github.com/Setono/request-aware-http-client INSTEAD
This bundle will decorate Symfonys HTTP client and make it possible to retrieve full requests for debugging etc.
Installation
Step 1: Download
$ composer require setono/http-client-bundle
Step 2: Enable the bundle
If you use Symfony Flex it will be enabled automatically. Else you need to add it to the config/bundles.php
:
<?php // config/bundles.php return [ // ... Setono\HttpClientBundle\SetonoHttpClientBundle::class => ['all' => true], // ... ];
Usage
Right now you manually decorate your HTTP client. In the future this will be done automatically for you.
<?php use Setono\HttpClientBundle\HttpClient\RequestAwareHttpClient; use Setono\HttpClientBundle\HttpClient\RequestAwareHttpClientInterface; use Symfony\Contracts\HttpClient\HttpClientInterface; class YourService { private RequestAwareHttpClientInterface $httpClient; public function __construct(HttpClientInterface $httpClient) { $this->httpClient = new RequestAwareHttpClient($httpClient); } public function doSomething(): void { $response = $this->httpClient->request('POST', 'https://httpbin.org/post', [ 'json' => ['name' => 'John Doe'] ]); $request = $this->httpClient->getRequestFromResponse($response); echo $request->asString(); // Outputs: // POST https://httpbin.org/post {"name":"John Doe"} } }