Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient

This commit is contained in:
Pierre du Plessis 2020-01-09 09:05:19 +02:00
parent 1443b43e1b
commit 1137bdc3f7
No known key found for this signature in database
GPG Key ID: DCB9DD926044955D
3 changed files with 31 additions and 2 deletions

View File

@ -1,6 +1,11 @@
CHANGELOG
=========
5.1.0
-----
* added `LoggerAwareInterface` to `ScopingHttpClient` and `TraceableHttpClient`
4.4.0
-----

View File

@ -11,6 +11,8 @@
namespace Symfony\Component\HttpClient;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Symfony\Component\HttpClient\Exception\InvalidArgumentException;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Contracts\HttpClient\ResponseInterface;
@ -22,7 +24,7 @@ use Symfony\Contracts\Service\ResetInterface;
*
* @author Anthony Martin <anthony.martin@sensiolabs.com>
*/
class ScopingHttpClient implements HttpClientInterface, ResetInterface
class ScopingHttpClient implements HttpClientInterface, ResetInterface, LoggerAwareInterface
{
use HttpClientTrait;
@ -98,4 +100,14 @@ class ScopingHttpClient implements HttpClientInterface, ResetInterface
$this->client->reset();
}
}
/**
* {@inheritdoc}
*/
public function setLogger(LoggerInterface $logger): void
{
if ($this->client instanceof LoggerAwareInterface) {
$this->client->setLogger($logger);
}
}
}

View File

@ -11,6 +11,8 @@
namespace Symfony\Component\HttpClient;
use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Symfony\Contracts\HttpClient\HttpClientInterface;
use Symfony\Contracts\HttpClient\ResponseInterface;
use Symfony\Contracts\HttpClient\ResponseStreamInterface;
@ -19,7 +21,7 @@ use Symfony\Contracts\Service\ResetInterface;
/**
* @author Jérémy Romey <jeremy@free-agent.fr>
*/
final class TraceableHttpClient implements HttpClientInterface, ResetInterface
final class TraceableHttpClient implements HttpClientInterface, ResetInterface, LoggerAwareInterface
{
private $client;
private $tracedRequests = [];
@ -75,4 +77,14 @@ final class TraceableHttpClient implements HttpClientInterface, ResetInterface
$this->tracedRequests = [];
}
/**
* {@inheritdoc}
*/
public function setLogger(LoggerInterface $logger): void
{
if ($this->client instanceof LoggerAwareInterface) {
$this->client->setLogger($logger);
}
}
}