neosmic/arango-php-ogm

用于ArangoDB分层图数据库的PHP对象图映射库

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

This package is auto-updated.

Last update: 2024-10-01 00:07:12 UTC


README

在ArangoDB中映射分层图数据库的PHP库

Build Status Quality Gate Status

描述

该库通过创建一个静态访问的对象来创建与ArangoDB图数据库的交互层。该库旨在仅使用两个文档集合插入数据:节点集合(Document Collection)和边集合(Edges Collection)。

要求

需要在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重命名为.env

必须在节点集合中创建至少一个具有属性_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库来维护标准。