anyitsolutions/neo4j-bolt

此包已被弃用,不再维护。作者建议使用 anyitsolutions/neo4j-bolt 包。

Neo4j Bolt 二进制协议 PHP 驱动程序

1.12.0 2020-08-11 00:11 UTC

README

Neo4j 的 Bolt 代理协议的 PHP 低级驱动程序

Build Status

参考

要求

  • PHP5.6+
  • Neo4j3.0
  • PHP Sockets 扩展可用
  • bcmath 扩展
  • mbstring 扩展

安装

在依赖项中要求此包

composer require graphaware/neo4j-bolt

设置驱动程序并创建会话

use GraphAware\Bolt\GraphDatabase;

$driver = GraphDatabase::driver("bolt://");
$session = $driver->session();

发送 Cypher 语句

$session = $driver->session();
$session->run("CREATE (n)");
$session->close();

// with parameters :

$session->run("CREATE (n) SET n += {props}", ['name' => 'Mike', 'age' => 27]);

空数组

由于 PHP 中缺少集合类型,无法区分空数组何时应被视为等同于 Java List 或 Map 类型。

因此,您可以使用数组的包装来保证类型安全

use GraphAware\Common\Collections;

        $query = 'MERGE (n:User {id: {id} }) 
        WITH n
        UNWIND {friends} AS friend
        MERGE (f:User {id: friend.name})
        MERGE (f)-[:KNOWS]->(n)';

        $params = ['id' => 'me', 'friends' => Collections::asList([])];
        $this->getSession()->run($query, $params);
        
// Or

        $query = 'MERGE (n:User {id: {id} }) 
        WITH n
        UNWIND {friends}.users AS friend
        MERGE (f:User {id: friend.name})
        MERGE (f)-[:KNOWS]->(n)';

        $params = ['id' => 'me', 'friends' => Collections::asMap([])];
        $this->getSession()->run($query, $params);

TLS 加密

为了启用 TLS 支持,您需要将配置选项设置为 REQUIRED,以下是一个示例

$config = \GraphAware\Bolt\Configuration::newInstance()
    ->withCredentials('bolttest', 'L7n7SfTSj0e6U')
    ->withTLSMode(\GraphAware\Bolt\Configuration::TLSMODE_REQUIRED);

$driver = \GraphAware\Bolt\GraphDatabase::driver('bolt://hobomjfhocgbkeenl.dbs.graphenedb.com:24786', $config);
$session = $driver->session();

许可证

版权所有 (c) 2015-2016 GraphAware Ltd

特此授予任何获得此软件及其相关文档副本(“软件”)的人,免费使用该软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人执行上述行为,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的任何副本或主要部分中。

软件按“现状”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他方式,无论是否与软件或其使用或其他交易有关。