cookieJar = $cookieJar; $this->restrictedAccess = $restrictedAccess; $this->logger = $logger; } /** * Adds a subscriber to the HTTP client. */ public function addSubscriber(SubscriberInterface $subscriber) { $this->subscribers[] = $subscriber; } /** * Input an array of configuration to be able to create a HttpClient. * * @return HttpClient */ public function createClient(array $config = []) { $this->logger->log('debug', 'Restricted access config enabled?', ['enabled' => (int) $this->restrictedAccess]); if (0 === (int) $this->restrictedAccess) { return new GuzzleAdapter(new GuzzleClient($config)); } // we clear the cookie to avoid websites who use cookies for analytics $this->cookieJar->clear(); if (!isset($config['defaults']['cookies'])) { // need to set the (shared) cookie jar $config['defaults']['cookies'] = $this->cookieJar; } $guzzle = new GuzzleClient($config); foreach ($this->subscribers as $subscriber) { $guzzle->getEmitter()->attach($subscriber); } return new GuzzleAdapter($guzzle); } }