PHP abstraction layer for neo4j graph database
Run the following command in your project to add this library:
composer require innmind/neo4j-dbal
Basic example to run a query:
use function Innmind\Neo4j\DBAL\bootstrap;
use Innmind\Neo4j\DBAL\{
Query,
Clause\Expression\Relationship
};
use Innmind\OperatingSystem\Factory;
$os = Factory::build();
$connection = bootstrap(
$os->remote()->http(),
$os->clock(),
);
$query = (new Query)
->match('n', ['LabelA', 'LabelB'])
->withProperty('foo', '$param')
->withParameter('param', 'value')
->linkedTo('n2')
->through('r', 'REL_TYPE', 'right')
->return('n', 'n2', 'r');
echo $query->cypher(); //MATCH (n:LabelA:LabelB { foo: $param })-[r:REL_TYPE]->(n2) RETURN n, n2, r
$result = $connection->execute($query);
echo $result->nodes()->count(); //2
echo $result->relationships()->count(); //1
Note: Each object in this library is immutable, so $query->match('n')->match('n2')
is different than $query->match('n'); $query->match('n2')
.
You have 3 options to execute a query: