Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Config.php
Go to the documentation of this file.
1 <?php
7 
9 
15 class Config
16 {
20  protected $objectManager;
21 
27  protected $soapOperations;
28 
32  protected $registry;
33 
37  protected $serviceMetadata;
38 
46  public function __construct(
47  \Magento\Framework\ObjectManagerInterface $objectManager,
48  \Magento\Framework\Registry $registry,
50  ) {
51  $this->objectManager = $objectManager;
52  $this->registry = $registry;
53  $this->serviceMetadata = $serviceMetadata;
54  }
55 
70  protected function getSoapOperations($requestedServices)
71  {
72  if (null == $this->soapOperations) {
73  $this->soapOperations = [];
74  foreach ($this->getRequestedSoapServices($requestedServices) as $serviceName => $serviceData) {
75  foreach ($serviceData[ServiceMetadata::KEY_SERVICE_METHODS] as $methodData) {
76  $method = $methodData[ServiceMetadata::KEY_METHOD];
77  $class = $serviceData[ServiceMetadata::KEY_CLASS];
78  $operationName = $serviceName . ucfirst($method);
79  $this->soapOperations[$operationName] = [
84  ];
85  }
86  }
87  }
88  return $this->soapOperations;
89  }
90 
99  public function getServiceMethodInfo($soapOperation, $requestedServices)
100  {
101  $soapOperations = $this->getSoapOperations($requestedServices);
102  if (!isset($soapOperations[$soapOperation])) {
103  throw new \Magento\Framework\Webapi\Exception(
104  __('Operation "%1" not found.', $soapOperation),
105  0,
106  \Magento\Framework\Webapi\Exception::HTTP_NOT_FOUND
107  );
108  }
109  return [
114  ];
115  }
116 
123  public function getRequestedSoapServices(array $requestedServices)
124  {
125  $services = [];
126  $soapServicesConfig = $this->serviceMetadata->getServicesConfig();
127  foreach ($requestedServices as $serviceName) {
128  if (isset($soapServicesConfig[$serviceName])) {
129  $services[$serviceName] = $soapServicesConfig[$serviceName];
130  }
131  }
132  return $services;
133  }
134 
143  public function getSoapOperation($interfaceName, $methodName, $version)
144  {
145  $serviceName = $this->serviceMetadata->getServiceName($interfaceName, $version);
146  $operationName = $serviceName . ucfirst($methodName);
147  return $operationName;
148  }
149 }
getServiceMethodInfo($soapOperation, $requestedServices)
Definition: Config.php:99
getSoapOperations($requestedServices)
Definition: Config.php:70
__()
Definition: __.php:13
getSoapOperation($interfaceName, $methodName, $version)
Definition: Config.php:143
__construct(\Magento\Framework\ObjectManagerInterface $objectManager, \Magento\Framework\Registry $registry, \Magento\Webapi\Model\ServiceMetadata $serviceMetadata)
Definition: Config.php:46
$_option $_optionId $class
Definition: date.phtml:13
$method
Definition: info.phtml:13
getRequestedSoapServices(array $requestedServices)
Definition: Config.php:123