我已经阅读了https://github.com/graphaware/neo4j-php-client#installation-以及基本用法和https://docs.graphenedb.com/docs/php
虽然GrapheneDb文档中的这个例子确实有效,但它不使用GraphAware Neo4j PHP客户端,而是使用Neo4j Bolt PHP:
// Example for Bolt
$config = GraphAwareBoltConfiguration::newInstance()
->withCredentials('user', 'pass')
->withTimeout(10)
->withTLSMode(GraphAwareBoltConfiguration::TLSMODE_REQUIRED);
$driver = GraphAwareBoltGraphDatabase::driver('bolt://hobby-my-graph-db.dbs.graphenedb.com:24786', $config);
$client = $driver->session();
我在任何地方都找不到工作的例子,我尝试过各种各样的东西;我已经两次和三次检查了连接字符串,我尝试了http和bolt,我已经从neo4j浏览器登录到数据库,所以我知道凭据必须是可以的。
这就是我的代码:
/* GraphAwareBoltConfiguration */
$config = Configuration::create()
->withCredentials('user', 'pass')
->withTimeout(10)
->withTLSMode(Configuration::TLSMODE_REQUIRED);
/* GraphAwareNeo4jClientClientBuilder */
$client = ClientBuilder::create()
->addConnection('bolt', 'bolt://hobby-my-graph-db.dbs.graphenedb.com:24787', $config)
->build();
$result = $client->run("CREATE (n:Person {name: 'Bob'}) RETURN id(n)");
当我尝试运行查询时,我得到:
Exception 'GraphAwareBoltExceptionHandshakeException' with message 'Error receiving data'
in /path-to-project/vendor/graphaware/neo4j-bolt/src/Driver.php:165
是否有人使用graphaware/neo4jphp客户端提供完整的GrapheneDb工作连接示例?
螺栓驱动器:由于某些原因,GraphAwareNeo4jClientConnectionConnection.php
不使用您传递给GraphAwareNeo4jClientClientBuilder->addConnection()
方法的配置(??(。它重建了配置,除了用户名和密码之外,什么都不做。因此,如果您的连接需要像我这样的TLS模式,那么如果不更改源,它将永远无法工作。
在buildDriver()
方法中的GraphAwareNeo4jClientConnectionConnection.php:180
中,我只使用我传入的配置,即$this->config
,而不是他们为您重建的配置。工作正常。
修改后看起来像:$this->driver = BoltGraphDB::driver($uri, $this->config);
(graphaware/neo4j php客户端4.8.5(
实际上,只是不要使用graphenedb,它很糟糕。只需使用https://neo4j.com/cloud/aura.工作时不会有任何麻烦。