private function updateConnectionPath($conn, $response) { //updating path //clean old points $oldPaths = $conn->getPaths()->all(); foreach ($oldPaths as $oldPath) { $oldPath->delete(); } //save new points $pathNodes = $response->reservation->criteria->children->child; if (count($pathNodes) < 2) { $pathNodes = [$pathNodes]; } Yii::trace(print_r($pathNodes, true)); $i = 0; foreach ($pathNodes as $pathNode) { Yii::trace(print_r($pathNode, true)); $pathNodeXml = $pathNode->any; $pathNodeXml = str_replace("<nsi_p2p:p2ps>", "<p2p>", $pathNodeXml); $pathNodeXml = str_replace("</nsi_p2p:p2ps>", "</p2p>", $pathNodeXml); $pathNodeXml = '<?xml version="1.0" encoding="UTF-8"?>' . $pathNodeXml; $xml = new \DOMDocument(); $xml->loadXML($pathNodeXml); $parser = new \DOMXpath($xml); $src = $parser->query("//sourceSTP"); $dst = $parser->query("//destSTP"); $path = new ConnectionPath(); $path->conn_id = $conn->id; $path->path_order = $i; $i++; $path->setPortBySTP($src->item(0)->nodeValue); $path->setDomainBySTP($src->item(0)->nodeValue); if (!$path->save()) { Yii::trace($path); return false; } $path = new ConnectionPath(); $path->conn_id = $conn->id; $path->path_order = $i; $i++; $path->setPortBySTP($dst->item(0)->nodeValue); $path->setDomainBySTP($dst->item(0)->nodeValue); if (!$path->save()) { Yii::trace($path); return false; } } return true; }