neosmic/arangodb-php-ogm

ArangoDB层次图数据库的PHP对象图映射库

v0.1.2 2021-11-25 21:41 UTC

This package is auto-updated.

Last update: 2024-10-01 00:10:42 UTC


README

用于在ArangoDB中映射定向层次图数据库的PHP库

Build Status Quality Gate Status

描述

此库通过创建一个可静态访问的对象,为ArangoDB的图数据库创建了一个交互层。此库旨在仅使用两个文档集合(节点集合和边集合)插入数据。

要求

需要在ArangoDB中创建一个数据库,并创建一个名为.env的变量文件,如下所示


ADB_SERVER=tcp://127.0.0.1:2589 #Always by tcp protocol
ADB_USER=database_user
ADB_NAME=database_name
ADB_USER_PASSWORD=super_secure_password
ADB_MAIN=main_node_key
ADB_NODES=nodes_collection
ADB_EDGES=edges_collection

也可以重命名.env.example文件

必须在节点集合中至少创建一个具有属性_tag='main'的文档,同时必须分配属性:tails、tags和utc,如果可以分配_key的值为'main'。例如:

{

"_tag": "main",

"name": "Nodo principal",

"tails":["imagenes","documentos"],

"tags": ["persona","director","estudiante"]

}

在Laravel中

需要在config/database.php文件中的connections数组中添加以下行

...

'binarydb' => [

'database' => env('ADB_NAME'),

'user' => env('ADB_USER'),

'password' => env('ADB_USER_PASSWORD'),

'server' => env('ADB_SERVER'),

'main' => env('ADB_MAIN'),

'nodes' => env('ADB_NODES'),

'edges' => env('ADB_EDGES')

]

...

在Laravel中启动对象时,不需要传递任何参数

  

Neosmic\ArangoPhpOgm\BinaryDb::start(); // Inicia la conexión a la base de datos

$main = Neosmic\ArangoPhpOgm\BinaryDb::main(); //Devuelve el nodo main

...

安装

composer require neosmic/arango-php-ogm

使用

在初始化对象时,必须使用Binary::start()函数指定.env文件所在的目录,例如:

// Buscar el archivo .env en la carpeta /src y crear el objeto para manipular la base de datos

$arangoDbOgm = BinaryDb::start([ 'envDir' => realpath(dirname(__FILE__)) .  '/src' ]);

// Devuelve los valores almacenados en el nodo main.

$main = $arangoDbOgm::main();

// Preparar datos para guardar en un nuevo nodo

$data = [

'propiedad' => 'valor',

'propiedad2' => 'valor2'

];

// crea un nuevo nodo almacena los datos y devuelve el nodo creado

$new = $arangoDbOgm::insert($data);

// conecta el nodo creado con el nodo main

$arangoDbOgm::link($new['_key'], $main['_key'], ['_tag' => 'hijo']);

// Eliminar conexiones al nuevo nodo

$arangoDbOgm::unlink($main['_key'], $new['_key']);

// Eliminar el nodo creado

$arangoDbOgm::remove($new['_key']);

在节点(字段)和边(连接/关系)的属性中,必须包含一个_tag属性,以进行搜索和筛选。这是数据库预先设计的一部分,其结构可能如下所示。

电影和演员

Grafo de ejemplo

推荐

仅在测试环境中使用此库,并自行承担风险。

贡献

欢迎所有贡献。建议使用PHPCS Fixer库来维护标准。