id, $v->text); } function show_connects($db, $v) { echo sprintf("Node %s is connected to:\r\n", vstring($v)); foreach($db->query(sprintf("SELECT EXPAND(BOTH('E')) FROM %s", $v->getRid())) as $vc) { echo sprintf(" Node %s\r\n", vstring($vc)); } } function show_connects_help($db, $id) { show_connects($db, $db->query(sprintf("SELECT FROM V where id = '%s'", $id))[0]); } function walk($db, $v) { echo 'Walk: '; $first = true; foreach($db->query(sprintf("TRAVERSE OUT() FROM %s", $v->getRid())) as $vc) { if($first) { $first = false; } else { echo ' -> '; } echo vstring($vc); } echo "\r\n"; } function walk_help($db, $id) { walk($db, $db->query(sprintf("SELECT FROM V where id = '%s'", $id))[0]); } function find_way($db, $vfrom, $vto) { echo 'Find: '; $first = true; foreach($db->query(sprintf("SELECT SHORTESTPATH(%s,%s) AS path UNWIND path", $vfrom->getRid(), $vto->getRid())) as $link) { $vc = $db->recordLoad($link->path)[0]; if($first) { $first = false; } else { echo ' -> '; } echo vstring($vc); } echo "\r\n"; } use PhpOrient\PhpOrient; // open $db = new PhpOrient('192.168.60.129', 2424); $db->dbOpen('test', 'admin', 'hemmeligt'); $db->command("DELETE Edge E"); $db->command("DELETE Vertex V"); // put $v1 = $db->command("CREATE VERTEX V SET id = 1, text = 'This is V1'"); $v2 = $db->command("CREATE VERTEX V SET id = 2, text = 'This is V2'"); $v3 = $db->command("CREATE VERTEX V SET id = 3, text = 'This is V3'"); $v4 = $db->command("CREATE VERTEX V SET id = 4, text = 'This is V4'"); $v5 = $db->command("CREATE VERTEX V SET id = 5, text = 'This is V5'"); $v6 = $db->command("CREATE VERTEX V SET id = 6, text = 'This is V6'"); $e12 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v1->getRid(), $v2->getRid())); $e23 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v2->getRid(), $v3->getRid())); $e24 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v2->getRid(), $v4->getRid())); $e35 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v3->getRid(), $v5->getRid())); $e36 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v3->getRid(), $v6->getRid())); $e56 = $db->command(sprintf("CREATE EDGE E FROM %s TO %s", $v5->getRid(), $v6->getRid())); // query connections show_connects($db, $v1); show_connects($db, $v2); show_connects($db, $v3); show_connects($db, $v4); show_connects($db, $v5); show_connects($db, $v6); show_connects_help($db, 1); show_connects_help($db, 2); show_connects_help($db, 3); show_connects_help($db, 4); show_connects_help($db, 5); show_connects_help($db, 6); // traverse walk($db, $v1); walk($db, $v2); walk($db, $v3); walk($db, $v4); walk($db, $v5); walk($db, $v6); walk_help($db, 1); walk_help($db, 2); walk_help($db, 3); walk_help($db, 4); walk_help($db, 5); walk_help($db, 6); // shortest path find_way($db, $v1, $v2); find_way($db, $v1, $v3); find_way($db, $v1, $v4); find_way($db, $v1, $v5); find_way($db, $v1, $v6); ?>