Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Soap.php
Go to the documentation of this file.
1 <?php
7 
13 
20 class Soap implements ClientInterface
21 {
25  private $logger;
26 
30  private $converter;
31 
35  private $clientFactory;
36 
42  public function __construct(
43  Logger $logger,
44  ClientFactory $clientFactory,
45  ConverterInterface $converter = null
46  ) {
47  $this->logger = $logger;
48  $this->converter = $converter;
49  $this->clientFactory = $clientFactory;
50  }
51 
61  public function placeRequest(TransferInterface $transferObject)
62  {
63  $this->logger->debug(['request' => $transferObject->getBody()]);
64 
65  $client = $this->clientFactory->create(
66  $transferObject->getClientConfig()['wsdl'],
67  ['trace' => true]
68  );
69 
70  try {
71  $client->__setSoapHeaders($transferObject->getHeaders());
72 
73  $response = $client->__soapCall(
74  $transferObject->getMethod(),
75  [$transferObject->getBody()]
76  );
77 
78  $result = $this->converter
79  ? $this->converter->convert(
80  $response
81  )
82  : [$response];
83 
84  $this->logger->debug(['response' => $result]);
85  } catch (\Exception $e) {
86  $this->logger->debug(['trace' => $client->__getLastRequest()]);
87  throw $e;
88  }
89 
90  return $result;
91  }
92 }
$response
Definition: 404.php:11
__construct(Logger $logger, ClientFactory $clientFactory, ConverterInterface $converter=null)
Definition: Soap.php:42
$logger
placeRequest(TransferInterface $transferObject)
Definition: Soap.php:61