Skip to content

Commit 864608b

Browse files
Allow callProcedure to take a string as function name
1 parent a0d95d3 commit 864608b

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/Query.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -396,15 +396,19 @@ public function call($query, $variables = []): self
396396
/**
397397
* Creates the CALL procedure clause.
398398
*
399-
* @param Procedure $procedure The procedure to call
399+
* @param Procedure|string $procedure The procedure to call
400400
* @param Alias|Alias[]|string|string[]|Variable|Variable[]|(Alias|string|Variable)[] $yields The result fields that should be returned (optional)
401401
*
402402
* @return $this
403403
*
404404
* @see https://neo4j.com/docs/cypher-manual/current/clauses/call/ Corresponding documentation on Neo4j.com
405405
*/
406-
public function callProcedure(Procedure $procedure, $yields = []): self
406+
public function callProcedure($procedure, $yields = []): self
407407
{
408+
if (is_string($procedure)) {
409+
$procedure = Procedure::raw($procedure, $yields);
410+
}
411+
408412
if (!is_array($yields)) {
409413
$yields = [$yields];
410414
}

tests/unit/QueryCallProcedureTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ public function testProcedureWithMultipleYields(): void
5656
$this->assertSame("CALL localtime() YIELD a, b", $statement->toQuery());
5757
}
5858

59+
public function testCallProcedureString(): void
60+
{
61+
$statement = Query::new()->callProcedure('apoc.json');
62+
63+
$this->assertSame("CALL `apoc.json`()", $statement->toQuery());
64+
}
65+
5966
public function testReturnsSameInstance(): void
6067
{
6168
$procedure = Procedure::localtime();

0 commit comments

Comments
 (0)