Skip to content

Commit 57faa38

Browse files
committed
added call method on query
1 parent cf0e1bc commit 57faa38

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/Query.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
namespace WikibaseSolutions\CypherDSL;
2323

24+
use WikibaseSolutions\CypherDSL\Clauses\CallClause;
2425
use WikibaseSolutions\CypherDSL\Clauses\CallProcedureClause;
2526
use WikibaseSolutions\CypherDSL\Clauses\Clause;
2627
use WikibaseSolutions\CypherDSL\Clauses\CreateClause;
@@ -55,6 +56,7 @@
5556
use WikibaseSolutions\CypherDSL\Types\StructuralTypes\NodeType;
5657
use WikibaseSolutions\CypherDSL\Types\StructuralTypes\PathType;
5758
use WikibaseSolutions\CypherDSL\Types\StructuralTypes\StructuralType;
59+
use function call_user_func;
5860

5961
/**
6062
* Builder class for building complex Cypher queries.
@@ -635,6 +637,28 @@ public function callProcedure(string $procedure, array $arguments = [], array $y
635637
return $this;
636638
}
637639

640+
/**
641+
* Creates a CALL sub query clause.
642+
*
643+
* @param callable(Query) $decorator The callable decorating the pattern.
644+
*
645+
* @return Query
646+
*
647+
* @see https://neo4j.com/docs/cypher-manual/current/clauses/call-subquery/
648+
*/
649+
public function call($decorator): self
650+
{
651+
self::assertClass('decorator', 'callable', $decorator);
652+
653+
$subQuery = self::new();
654+
655+
$decorator($subQuery);
656+
657+
$this->clauses[] = new CallClause($subQuery);
658+
659+
return $this;
660+
}
661+
638662
/**
639663
* Add a clause to the query.
640664
*

0 commit comments

Comments
 (0)