什么像tinkerpop的PHP?

时间:2012-09-24 01:18:24

标签: php graph-databases orientdb

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

在PHP中与OrientDB交互的推荐方法是什么?对于PHP世界,是否存在像tinkerpop这样的通用框架?

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

我知道有2个php连接器:OrientOrientDB-PHP,但还没有尝试过。有人有过这方面的经历吗?优缺点都有什么?如果它存在的话,我当然会更喜欢像tinkerpop这样的东西,但是如果它不是一个面向OrientDB的库也可以。

2 个答案:

答案 0 :(得分:3)

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

在PHP中,目前没有像tinkerpop这样的东西,但我认为你应该能够与东方开始。使用它非常简单:

<?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/

干杯,

答案 1 :(得分:1)

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

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

TinkerPop 3

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

Tinkerpop 2(不再维护)

您可以通过可用的PHP驱动程序使用堆栈中的Rexster server