22 $xpath = new \DOMXPath(
$source);
23 $views = $xpath->evaluate(
'/config/view');
25 foreach ($views as $viewNode) {
28 $data[
'view_id'] = $viewId;
31 $data[
'subscriptions'] = [];
34 foreach ($viewNode->childNodes as $childNode) {
35 if ($childNode->nodeType != XML_ELEMENT_NODE) {
39 $data = $this->convertChild($childNode,
$data);
56 $node = $input->attributes->getNamedItem($attributeName);
57 return $node ? $node->nodeValue : $default;
67 protected function convertChild(\DOMNode $childNode,
$data)
69 switch ($childNode->nodeName) {
72 foreach ($childNode->childNodes as $subscription) {
73 if ($subscription->nodeType != XML_ELEMENT_NODE || $subscription->nodeName !=
'table') {
78 $subscriptionModel = $this->
getAttributeValue($subscription,
'subscription_model');
79 if (!empty($subscriptionModel)
81 SubscriptionInterface::class,
82 class_implements(ltrim($subscriptionModel,
'\\'))
85 throw new \InvalidArgumentException(
86 'Subscription model must implement ' . SubscriptionInterface::class
92 'subscription_model' => $subscriptionModel
getAttributeValue(\DOMNode $input, $attributeName, $default=null)
if(!isset($_GET['name'])) $name