juststeveking / neo4j-http-adapter
一个符合PSR标准的精简HTTP客户端
v1.0
2020-05-28 14:13 UTC
Requires
- php: ^7.4
- guzzlehttp/guzzle: ^6.5
Requires (Dev)
- juststeveking/graph-connection: dev-master
- phploc/phploc: ^6.0
- phpstan/phpstan: ^0.12.25
- phpunit/phpunit: ^9.1
- psr/http-client: ^1.0
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3.5
- thecodingmachine/phpstan-safe-rule: ^1.0
This package is auto-updated.
Last update: 2024-09-19 22:40:27 UTC
README
此包仍在开发中,到目前为止我已测试的功能正常,但尚未用于生产环境。
此包的目的是提供一个干净且简单的方式,以便与neo4j HTTP API v4协同工作,运行Cypher查询并返回数据。
安装
使用composer
$ composer require juststeveking/neo4j-http-adapter
然后您可以根据需要在自己的项目中使用它。
使用方法
使用这个库相对简单。
准备您的适配器
适配器构建方法接受两个参数:您的neo4j数据库的连接字符串和一个可能为null的数据库名。
请注意,如果您的连接字符串不是以http
或https
开头,将会抛出异常。
<?php use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $adapter = HttpAdapter::build( 'http://neo4j:password@localhost:7474', 'my_database' );
选择要查询的数据库
<?php use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $adapter = HttpAdapter::build( 'http://neo4j:password@localhost:7474', 'my_database' ); $database = $adapter->on('database-name');
开始构建事务
一旦您有一个活跃的适配器并选择了您的数据库,您将想要开始对其运行查询。
<?php use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $adapter = HttpAdapter::build( 'http://neo4j:password@localhost:7474', 'my_database' ); $database = $adapter->on('database-name'); // Add a query to the transaction pipeline. $database->query('MATCH (person:Person) WHERE person.name = "Tom Hanks" RETURN person'); // Add another query to the transaction pipeline $database->query('MATCH (film:Film) WHERE film.name = "Forrest Gump" RETURN film');
从这里我们可以自由地将此事务发送到服务器
use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $adapter = HttpAdapter::build( 'http://neo4j:password@localhost:7474', 'my_database' ); $database = $adapter->on('database-name'); // Add a query to the transaction pipeline. $database->query('MATCH (person:Person) WHERE person.name = "Tom Hanks" RETURN person'); $response = $database->send();
更简洁的方法
此包的目的是允许您根据您的意愿构建查询并发送它们,而不是如何处理它们。以下是发送查询的另一种方法
<?php use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $adapter = HttpAdapter::build( 'http://neo4j:password@localhost:7474', null ); $actorsDatabase = $adapter->on('actors'); $tomHanks = $actorsDatabase->query('MATCH (person:Person) WHERE person.name = "Tom Hanks" RETURN person')->send();
或者如果您更喜欢链式处理过程
<?php use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $tomHanks = HttpsAdapter::build( 'http://neo4j:password@localhost:7474', 'actors' )->query('MATCH (person:Person) WHERE person.name = "Tom Hanks" RETURN person')->send();
如果您还想使用我的其他包,可以像以下这样查询
<?php use JustSteveKing\Graph\Builder\Cypher; use JustSteveKing\Graph\Connection\ConnectionManager; use JustSteveKing\Graph\Connection\Adapters\Neo4j\Adapters\Http\HttpAdapter; $connection = ConnectionManager::create(HttpAdapter::build('http://neo4j:password@localhost:7474', null)); $query = Cypher::query()->match('Person', 'person')->where('person', 'name', '=', 'Tom Hanks')->return('person'); $connection->use('neo-http')->on('neo4j')->query($query)->send();
测试
有一个composer脚本来运行测试
$ composer run test
然而,如果您无法运行此脚本,请使用以下命令
$ ./vendor/bin/phpunit --testdox
安全性
如果您发现任何安全相关的问题,请通过电子邮件juststevemcd@gmail.com而不是使用问题跟踪器。