Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Zend.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\Framework\HTTP\ZendClientFactory;
14 
21 class Zend implements ClientInterface
22 {
26  private $clientFactory;
27 
31  private $converter;
32 
36  private $logger;
37 
43  public function __construct(
44  ZendClientFactory $clientFactory,
45  Logger $logger,
46  ConverterInterface $converter = null
47  ) {
48  $this->clientFactory = $clientFactory;
49  $this->converter = $converter;
50  $this->logger = $logger;
51  }
52 
56  public function placeRequest(TransferInterface $transferObject)
57  {
58  $log = [
59  'request' => $transferObject->getBody(),
60  'request_uri' => $transferObject->getUri()
61  ];
62  $result = [];
64  $client = $this->clientFactory->create();
65 
66  $client->setConfig($transferObject->getClientConfig());
67  $client->setMethod($transferObject->getMethod());
68 
69  switch ($transferObject->getMethod()) {
70  case \Zend_Http_Client::GET:
71  $client->setParameterGet($transferObject->getBody());
72  break;
73  case \Zend_Http_Client::POST:
74  $client->setParameterPost($transferObject->getBody());
75  break;
76  default:
77  throw new \LogicException(
78  sprintf(
79  'Unsupported HTTP method %s',
80  $transferObject->getMethod()
81  )
82  );
83  }
84 
85  $client->setHeaders($transferObject->getHeaders());
86  $client->setUrlEncodeBody($transferObject->shouldEncode());
87  $client->setUri($transferObject->getUri());
88 
89  try {
90  $response = $client->request();
91 
92  $result = $this->converter
93  ? $this->converter->convert($response->getBody())
94  : [$response->getBody()];
95  $log['response'] = $result;
96  } catch (\Zend_Http_Client_Exception $e) {
97  throw new \Magento\Payment\Gateway\Http\ClientException(
98  __($e->getMessage())
99  );
100  } catch (\Magento\Payment\Gateway\Http\ConverterException $e) {
101  throw $e;
102  } finally {
103  $this->logger->debug($log);
104  }
105 
106  return $result;
107  }
108 }
$response
Definition: 404.php:11
__()
Definition: __.php:13
$logger
placeRequest(\Magento\Payment\Gateway\Http\TransferInterface $transferObject)
__construct(ZendClientFactory $clientFactory, Logger $logger, ConverterInterface $converter=null)
Definition: Zend.php:43