xp-forge/neo4j

为 XP 框架提供 Neo4J 连接性

v1.2.0 2024-03-24 12:36 UTC

This package is auto-updated.

Last update: 2024-08-24 13:41:10 UTC


README

Build status on GitHub XP Framework Module BSD Licence Requires PHP 7.0+ Supports PHP 8.0+ Latest Stable Version

此库通过其 REST API 实现了 Neo4J 连接性。

示例

可以通过 open() 运行查询(每次返回一条记录)或通过 query() 运行查询(将结果收集到数组中)

use com\neo4j\Graph;
use util\cmd\Console;

$g= new Graph('http://user:pass@neo4j-db.example.com:7474/db/data');
$q= $g->open('MATCH (t:Topic) RETURN t.name, t.canonical');
foreach ($q as $record) {
  Console::writeLine('#', $record['t.canonical'], ': ', $record['t.name']);
}

要获取单个结果(或如果没有找到则返回 NULL),请使用 fetch()

if ($topic= $g->fetch('MATCH (t:Topic{id:%s}) RETURN t', $id)) {
  Console::writeLine('Found topic ', $topic);
}

格式化参数使用类似 printf 的格式占位符。这些将负责适当的转义和类型转换

use com\neo4j\Graph;
use util\cmd\Console;

$g= new Graph('http://user:pass@neo4j-db.example.com:7474/db/data');
$g->query('CREATE (p:Person) SET t.name = %s, t.id = %d', $name, $id);

可以通过 execute() 方法执行批量语句。

格式字符

  • %s: 格式化字符串
  • %d: 格式化十进制数字
  • %f: 格式化浮点数
  • %b: 格式化布尔值
  • %v: 将值复制到参数
  • %l: 将标签复制到查询
  • %c: 将文本复制到查询
  • %%: 文字百分号

可以使用位置参数(从 1 开始),例如 %2$s