Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
XmlToArrayConfigConverter.php
Go to the documentation of this file.
1 <?php
7 
9 
14 {
20  private static $paymentMethodNodeType = 'payment_method';
21 
27  private static $magentoCodeNodeType = 'magento_code';
28 
34  private static $signifydCodeNodeType = 'signifyd_code';
35 
39  public function convert($source)
40  {
41  $paymentMethods = $source->getElementsByTagName(self::$paymentMethodNodeType);
42  $paymentsList = [];
43  foreach ($paymentMethods as $paymentMethod) {
44  $paymentsList += $this->getPaymentMethodMapping($paymentMethod);
45  }
46 
47  return $paymentsList;
48  }
49 
58  private function getPaymentMethodMapping(\DOMElement $payment)
59  {
60  $paymentMethodCode = $this->readSubnodeValue($payment, self::$magentoCodeNodeType);
61  $signifyPaymentMethodCode = $this->readSubnodeValue($payment, self::$signifydCodeNodeType);
62 
63  return [$paymentMethodCode => $signifyPaymentMethodCode];
64  }
65 
74  private function readSubnodeValue(\DOMElement $element, $subNodeType)
75  {
76  $domList = $element->getElementsByTagName($subNodeType);
77  if (empty($domList[0])) {
78  throw new ValidationSchemaException(__('Only single entrance of "%1" node is required.', $subNodeType));
79  }
80 
81  $subNodeValue = trim($domList[0]->nodeValue);
82  if (!$subNodeValue) {
83  throw new ValidationSchemaException(__('Not empty value for "%1" node is required.', $subNodeType));
84  }
85 
86  return $subNodeValue;
87  }
88 }
$source
Definition: source.php:23
__()
Definition: __.php:13
$payment
Definition: order.php:17
$paymentMethods
$element
Definition: element.phtml:12