public function testConversion() { $gen = new Neogen(); $p = '(person:Person {firstname:firstName, lastname:lastName} *5)-[:WORKS_AT *n..1]->(company:Company {name:company} *10) (actor:Person:Actor {name:fullName, birthdate:{dateTimeBetween:["-50 years","-18 years"]}} *10)-[:WORKS_AT {since:{dateTimeBetween:["-5 years","-1 years"]}} *n..1]->(company)'; $graph = $gen->generateGraphFromCypher($p); $converter = new CypherStatementsConverter(); $converter->convert($graph); $client = ClientBuilder::create()->addDefaultLocalConnection()->build(); $client->sendCypherQuery('MATCH (n) OPTIONAL MATCH (n)-[r]-() DELETE r,n'); $statements = $converter->getStatements(); foreach ($statements['constraints'] as $st) { $client->sendCypherQuery($st['statement']); } foreach ($statements['nodes'] as $st) { $client->sendCypherQuery($st['statement'], $st['parameters']); } foreach ($statements['edges'] as $st) { if (!isset($st['parameters'])) { $parameters = array(); } else { $parameters = $st['parameters']; } $client->sendCypherQuery($st['statement'], $parameters); } }
public function loadGraphInDB($pattern) { $this->clearDB(); $gen = new Neogen(); $schema = $gen->generateGraphFromCypher($pattern); $converter = new CypherStatementsConverter(); $converter->convert($schema); $statements = $converter->getStatements(); foreach ($statements as $statement) { if (is_array($statement)) { foreach ($statement as $st) { $props = isset($st['parameters']) ? $st['parameters'] : array(); $this->sendQuery($st['statement'], $props); } } else { $props = isset($statement['parameters']) ? $statement['parameters'] : array(); $this->sendQuery($statement['statement'], $props); } } }