X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FHelper%2FHttpClientFactory.php;h=4602a6841614f8c6ad61ec6b72c45e9accd2f77b;hb=f808b01692a835673f328d7221ba8c212caa9b61;hp=8891887b6e97d1a68ad3f783f130ac49879261d6;hpb=78295b99dd1721c613f1ce52e2debbe6f6db7753;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php index 8891887b..4602a684 100644 --- a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php +++ b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php @@ -6,32 +6,34 @@ use Graby\Ring\Client\SafeCurlHandler; use GuzzleHttp\Client; use GuzzleHttp\Cookie\CookieJar; use GuzzleHttp\Event\SubscriberInterface; +use Psr\Log\LoggerInterface; /** * Builds and configures the Guzzle HTTP client. */ class HttpClientFactory { - /** @var \GuzzleHttp\Event\SubscriberInterface */ - private $authenticatorSubscriber; + /** @var [\GuzzleHttp\Event\SubscriberInterface] */ + private $subscribers = []; /** @var \GuzzleHttp\Cookie\CookieJar */ private $cookieJar; private $restrictedAccess; + private $logger; /** * HttpClientFactory constructor. * - * @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber - * @param \GuzzleHttp\Cookie\CookieJar $cookieJar - * @param string $restrictedAccess this param is a kind of boolean. Values: 0 or 1 + * @param \GuzzleHttp\Cookie\CookieJar $cookieJar + * @param string $restrictedAccess This param is a kind of boolean. Values: 0 or 1 + * @param LoggerInterface $logger */ - public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess) + public function __construct(CookieJar $cookieJar, $restrictedAccess, LoggerInterface $logger) { - $this->authenticatorSubscriber = $authenticatorSubscriber; $this->cookieJar = $cookieJar; $this->restrictedAccess = $restrictedAccess; + $this->logger = $logger; } /** @@ -39,16 +41,31 @@ class HttpClientFactory */ public function buildHttpClient() { + $this->logger->log('debug', 'Restricted access config enabled?', ['enabled' => (int) $this->restrictedAccess]); + if (0 === (int) $this->restrictedAccess) { - return null; + return; } // we clear the cookie to avoid websites who use cookies for analytics $this->cookieJar->clear(); // need to set the (shared) cookie jar $client = new Client(['handler' => new SafeCurlHandler(), 'defaults' => ['cookies' => $this->cookieJar]]); - $client->getEmitter()->attach($this->authenticatorSubscriber); + + foreach ($this->subscribers as $subscriber) { + $client->getEmitter()->attach($subscriber); + } return $client; } + + /** + * Adds a subscriber to the HTTP client. + * + * @param SubscriberInterface $subscriber + */ + public function addSubscriber(SubscriberInterface $subscriber) + { + $this->subscribers[] = $subscriber; + } }