23 $events =
$source->getElementsByTagName(
'event');
25 foreach ($events as $eventConfig) {
26 $eventName = $eventConfig->attributes->getNamedItem(
'name')->nodeValue;
29 foreach ($eventConfig->childNodes as $observerConfig) {
30 if ($observerConfig->nodeName !=
'observer' || $observerConfig->nodeType != XML_ELEMENT_NODE) {
33 $observerNameNode = $observerConfig->attributes->getNamedItem(
'name');
34 if (!$observerNameNode) {
35 throw new \InvalidArgumentException(
'Attribute name is missed');
38 $config[
'name'] = $observerNameNode->nodeValue;
39 $eventObservers[$observerNameNode->nodeValue] =
$config;
41 $output[mb_strtolower($eventName)] = $eventObservers;
56 $instanceAttribute = $observerConfig->attributes->getNamedItem(
'instance');
57 if ($instanceAttribute) {
58 $output[
'instance'] = $instanceAttribute->nodeValue;
62 $methodAttribute = $observerConfig->attributes->getNamedItem(
'method');
63 if ($methodAttribute) {
64 $output[
'method'] = $methodAttribute->nodeValue;
68 $disabledAttribute = $observerConfig->attributes->getNamedItem(
'disabled');
69 if ($disabledAttribute && $disabledAttribute->nodeValue ==
'true') {
74 $shredAttribute = $observerConfig->attributes->getNamedItem(
'shared');
75 if ($shredAttribute && $shredAttribute->nodeValue ==
'false') {
_convertObserverConfig($observerConfig)