Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Converter.php
Go to the documentation of this file.
1 <?php
9 
11 {
19  public function convert($source)
20  {
21  $output = [];
23  $events = $source->getElementsByTagName('event');
25  foreach ($events as $eventConfig) {
26  $eventName = $eventConfig->attributes->getNamedItem('name')->nodeValue;
27  $eventObservers = [];
29  foreach ($eventConfig->childNodes as $observerConfig) {
30  if ($observerConfig->nodeName != 'observer' || $observerConfig->nodeType != XML_ELEMENT_NODE) {
31  continue;
32  }
33  $observerNameNode = $observerConfig->attributes->getNamedItem('name');
34  if (!$observerNameNode) {
35  throw new \InvalidArgumentException('Attribute name is missed');
36  }
37  $config = $this->_convertObserverConfig($observerConfig);
38  $config['name'] = $observerNameNode->nodeValue;
39  $eventObservers[$observerNameNode->nodeValue] = $config;
40  }
41  $output[mb_strtolower($eventName)] = $eventObservers;
42  }
43  return $output;
44  }
45 
52  public function _convertObserverConfig($observerConfig)
53  {
54  $output = [];
56  $instanceAttribute = $observerConfig->attributes->getNamedItem('instance');
57  if ($instanceAttribute) {
58  $output['instance'] = $instanceAttribute->nodeValue;
59  }
60 
62  $methodAttribute = $observerConfig->attributes->getNamedItem('method');
63  if ($methodAttribute) {
64  $output['method'] = $methodAttribute->nodeValue;
65  }
66 
68  $disabledAttribute = $observerConfig->attributes->getNamedItem('disabled');
69  if ($disabledAttribute && $disabledAttribute->nodeValue == 'true') {
70  $output['disabled'] = true;
71  }
72 
74  $shredAttribute = $observerConfig->attributes->getNamedItem('shared');
75  if ($shredAttribute && $shredAttribute->nodeValue == 'false') {
76  $output['shared'] = false;
77  }
78 
79  return $output;
80  }
81 }
$config
Definition: fraud_order.php:17
$source
Definition: source.php:23