*/ class RequestManager implements RequestManagerInterface { /** * @var \Http\Client\HttpClient */ private $httpClient; /** * @var \Http\Message\MessageFactory */ private $messageFactory; /** * {@inheritdoc} */ public function sendRequest($method, $uri, array $headers = [], $body = null, $protocolVersion = '1.1') { $request = $this->getMessageFactory()->createRequest($method, $uri, $headers, $body, $protocolVersion); try { return $this->getHttpClient()->sendRequest($request); } catch (TransferException $e) { throw new LinkedInTransferException('Error while requesting data from LinkedIn.com: '.$e->getMessage(), $e->getCode(), $e); } } /** * {@inheritdoc} */ public function setHttpClient(HttpClient $httpClient) { $this->httpClient = $httpClient; return $this; } /** * @return HttpClient */ protected function getHttpClient() { if ($this->httpClient === null) { $this->httpClient = HttpClientDiscovery::find(); } return $this->httpClient; } /** * @param MessageFactory $messageFactory * * @return RequestManager */ public function setMessageFactory(MessageFactory $messageFactory) { $this->messageFactory = $messageFactory; return $this; } /** * @return \Http\Message\MessageFactory */ private function getMessageFactory() { if ($this->messageFactory === null) { $this->messageFactory = MessageFactoryDiscovery::find(); } return $this->messageFactory; } }