2

我刚刚开始使用图形数据库。我想在 PHP 应用程序中与他们交谈。特别是,我正在关注OrientDB,主要是因为它的许可优势和优于 neo4j 的功能。

在 PHP 中与 OrientDB 交互的推荐方式是什么?PHP 世界是否有像 tinkerpop 这样的通用框架?

我想主要使用 gremlin 和一些 OrientDB 的扩展 SQL(仅在必要时)来查询我的图表。

我知道有 2 个 php 连接器:OrientOrientDB-PHP,但还没有尝试过。有没有人有过他们的经验?优缺点都有什么?如果存在的话,我当然更喜欢 PHP 的 tinkerpop 之类的东西,但如果它不存在,那么面向 OrientDB 的库也可以。

4

2 回答 2

3

我是 Alex,实际上我为 Orient(php 库)编写了代码库的最大部分。

在 PHP 中,目前没有 tinkerpop 之类的东西,但我认为您应该能够从 Orient 开始。使用它非常简单:

<?php

namespace Congow\Orient;

use Congow\Orient\Binding\HttpBinding;
use Congow\Orient\Binding\BindingParameters;

require __DIR__.'/../autoload.php';

$parameters = BindingParameters::create('http://admin:admin@127.0.0.1:2480/friends');
$binding = new HttpBinding($parameters);

$response = $binding->query('select from friends where any() traverse(0,1) ( @rid = #5:3 ) and @rid <> #5:3');
$friends = $response->getResult();

foreach ($friends as $friend) {
    echo $friend->name, "\n";
}

您也可以使用查询构建器,而不是从头开始编写查询:

$query = new Select(array('myClass'));
$query->orderBy("name ASC", false);

echo $query->getRaw() // SELECT FROM myClass ORDER BY name ASC

您可以查看库的测试,或者查看示例目录中的迷你示例。

我们正在慢慢地继续开发,所以你可以在这里找到一些资源:http: //odino.org/blog/categories/orientdb/

干杯,

于 2012-09-24T09:16:20.003 回答
1

我知道这已经有一段时间了,但我想指出您可以通过可用的驱动程序在 PHP 中使用 Tinkerpop 堆栈。

这些将允许您对您选择的底层数据库进行一定程度的抽象——从而允许您在需要时切换 DB(Neo4j、OrientDB、Titan 等)。

小叮当 3

您可以通过可用的 php 驱动程序使用Gremlin 服务器(rexster 的新名称):

Tinkerpop 2(不再维护)

您可以通过可用的 php 驱动程序从堆栈中使用Rexster 服务器:

于 2015-04-08T16:31:39.950 回答