24 if (
$source->documentElement->hasChildNodes()) {
26 foreach (
$source->documentElement->childNodes as $child) {
28 $id = $child->getAttribute(
'id');
34 foreach ($child->childNodes as $paymentChild) {
35 switch ($paymentChild->nodeName) {
37 $selector = $paymentChild->getAttribute(
'selector');
38 $result[
$id][
'events'][$selector] = $this->createEvents($paymentChild);
41 $result[
$id][
'relations'] += $this->createRelation($paymentChild);
58 protected function createEvents(\DOMElement $node)
61 foreach ($node->childNodes as $child) {
64 $result[$child->getAttribute(
'name')] = [
65 'value' => $child->getAttribute(
'value'),
66 'predicate' => $this->createPredicate($child),
80 protected function createPredicate(\DOMElement $node)
83 foreach ($node->childNodes as $child) {
87 'name' => $child->getAttribute(
'name'),
88 'message' =>
__($child->getAttribute(
'message')),
89 'event' => $child->getAttribute(
'event'),
90 'argument' => $this->createArgument($child),
104 protected function createRelation(\DOMElement $node)
107 foreach ($node->childNodes as $child) {
110 $result[$child->getAttribute(
'type')][] = [
111 'event' => $child->getAttribute(
'event'),
112 'argument' => $this->createArgument($child),
117 return [$node->getAttribute(
'target') =>
$result];
126 protected function createArgument(\DOMElement $node)
129 foreach ($node->childNodes as $child) {
132 $result[$child->getAttribute(
'name')] = $child->textContent;
147 switch ($node->nodeType) {
149 case XML_COMMENT_NODE:
150 case XML_CDATA_SECTION_NODE:
hasNodeElement(\DOMNode $node)