GraphAware \ Neo4j \ Client \ HttpDriver \ Session :: run()声明必须兼容

时间:2016-10-07 07:05:58

标签: neo4j neo4jphp graphaware

我正在关注教程provided by graphaware,并且在尝试执行基本使用教程时我一直收到以下错误:

  

致命错误:GraphAware \ Neo4j \ Client \ HttpDriver \ Session :: run()声明必须与GraphAware \ Common \ Driver \ SessionInterface :: run兼容($ statement,array $ parameters = Array,$ tag = NULL )第24行 C:\ ProgramData \ ComposerSetup \ bin \ vendor \ graphaware \ neo4j-php-client \ src \ HttpDriver \ Session.php

这是我执行的代码:

<?php

require_once 'C:\ProgramData\ComposerSetup\bin\vendor\autoload.php';

use GraphAware\Neo4j\Client\ClientBuilder;

$client = ClientBuilder::create()
->addConnection('default', 'http://neo4j:password@localhost:7474') // Changed the login info back to default
->addConnection('bolt', 'bolt://neo4j:password@localhost:7687') // Changed the login info back to default
->build();

$result = $client->run("MATCH (n:User) RETURN n");

?>

我尝试过多次删除和读取Neo4J PHP客户端,但这并没有解决它

我使用的是Neo4J v3.0.6并且在几天内遇到了同样的问题。任何帮助表示赞赏。

编辑:composer.json

{
"require": {
    "everyman/neo4jphp": "dev-master",
    "graphaware/neo4j-php-client": "4.0"
}
}

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题而且#34;解决了#34;但它有一个次优的解决方案:

直接(!)在GraphAware \ Common \ Driver \ SessionInterface中,我试图替换

public function run($statement, array $parameters = Array, $tag = NULL);

通过

public function run($statement, $parameters = array(), $tag = null);

这似乎是Graphaware \ Neo4j \ Client \ HttpDriver \ Session

的预期

它现在有效......(直到包更新?)

这可能是个错误吗?

答案 1 :(得分:1)

我有同样的错误。问题是neo4j-php-client (version 4.0.0)的过时版本。这是我做的:

  1. 从源文件夹中删除vendor/文件夹和composer.lock文件。

  2. composer.json中的版本号前添加caret

    "graphaware/neo4j-php-client": "^4.0"
    
  3. 然后通过终端在源文件夹中执行composer install

  4. 它安装了最新版本graphaware/neo4j-php-client (4.6.4)并解决了错误。