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);
     }
 }
Ejemplo n.º 2
0
 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);
         }
     }
 }