neosmic / arango-php-ogm
用于ArangoDB分层图数据库的PHP对象图映射库
v0.1.2
2021-11-25 21:41 UTC
Requires
- composer/composer: ^1.12.23|>= 2.1.9
- triagens/arangodb: ^3.8
- vlucas/phpdotenv: ^5.3
Requires (Dev)
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
- triagens/arangodb: ^3.8
This package is auto-updated.
Last update: 2024-10-01 00:07:12 UTC
README
在ArangoDB中映射分层图数据库的PHP库
描述
该库通过创建一个静态访问的对象来创建与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属性,以用于搜索和过滤。这是数据库预先设计的一部分,其结构可能如下所示。
电影和演员
推荐
仅在测试环境中使用此库,并自行承担责任。
贡献
欢迎所有贡献。建议使用PHPCS Fixer库来维护标准。