PHPackages                             neosmic/arangodb-php-ogm - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. neosmic/arangodb-php-ogm

ActiveLibrary[Database &amp; ORM](/categories/database)

neosmic/arangodb-php-ogm
========================

PHP library for Object Graph Mapping for a hierarchical graph database in ArangoDB

v0.1.2(4y ago)211MITPHP

Since Sep 24Pushed 2y ago1 watchersCompare

[ Source](https://github.com/neosmic/arangodb-php-ogm)[ Packagist](https://packagist.org/packages/neosmic/arangodb-php-ogm)[ Fund](https://mpago.li/1p7dab8)[ RSS](/packages/neosmic-arangodb-php-ogm/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (6)Versions (6)Used By (0)

ArangoDB OGM
============

[](#arangodb-ogm)

Librería en PHP para el mapeo de una base de datos de grafos jerárquica direccionada en ArangoDB

[![Build Status](https://camo.githubusercontent.com/2d12e0e7f34a15f1459f700c10339147466a15ac6d5cf67a61c02a205c6767b9/68747470733a2f2f6170702e7472617669732d63692e636f6d2f6e656f736d69632f6172616e676f2d7068702d6f676d2e7376673f746f6b656e3d5870646853325658793852456b644e7a38673950266272616e63683d6d6173746572)](https://app.travis-ci.com/neosmic/arango-php-ogm) [![Quality Gate Status](https://camo.githubusercontent.com/7c4e7f6efcc7ada79f43b25e6846ff3d4da47e509d4b09bb619d6fe0a156c62b/68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d6e656f736d69635f6172616e676f2d7068702d6f676d266d65747269633d616c6572745f737461747573)](https://sonarcloud.io/dashboard?id=neosmic_arango-php-ogm)

Descripción
-----------

[](#descripción)

Esta librería crea una capa de interacción con la base de datos de grafos de ArangoDB a través de la creación de un objeto que se puede acceder de manera estática. Esta librería está pensada para insertar los datos utilizando únicamente dos colecciones de documentos: una de nodos (Document Collection) y otra de conexiones (Edges Collection)

Requerimientos
--------------

[](#requerimientos)

Se debe crear una base de datos en ArangoDB y crear un archivo de variables llamado .env así:

```

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

```

También puede renombrar el archivo .env.example

Debe crearse al menos un documento dentro de la colección de nodos con la propiedad \_tag='main', asimismo se deben asignar las propiedades: *tails*, *tags* y *utc* si puede asignarle el valor de *\_key* como 'main'. Ej:

```
{

"_tag": "main",

"name": "Nodo principal",

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

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

}
```

### En Laravel

[](#en-laravel)

Se deben agregar las siguientes líneas en el archivo config/database.php como un elemento del array *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')

]

...
```

También al iniciar el objeto en Laravel no se require pasar ningún parámetro:

```

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

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

...
```

Instalación
-----------

[](#instalación)

```
composer require neosmic/arango-php-ogm
```

Uso
---

[](#uso)

Se debe indicar el directorio del archivo *env* al momento de inicializar el objeto con la función *Binary::start()*, ej:

```
// 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']);
```

En las propiedades (campos) de los nodos así como las aristas (conexiones/relaciones), se debe incluir una propiedad \_tag, para la búsqueda y filtrado. Esto hace parte del diseño previo de la base de datos, que puede tener una estructura como la que se muestra en el siguiente ejemplo.

Películas y actores

[![Grafo de ejemplo](./graph.png)](./graph.png)

Recomendaciones
---------------

[](#recomendaciones)

Utilice esta librería sólo en entornos de prueba y bajo su propia responsabilidad.

Contribuciones
--------------

[](#contribuciones)

Todas las contribuciones son bienvenidas. Se recomienda utilizar la librería PHPCS Fixer para mantener el estándar.

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~20 days

Total

4

Last Release

1626d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/dfdb2e3308a5f96a50842b5bf7b38ab472314b2e577bcbb2ac61fb87a255983d?d=identicon)[neosmic](/maintainers/neosmic)

---

Top Contributors

[![neosmic](https://avatars.githubusercontent.com/u/56646484?v=4)](https://github.com/neosmic "neosmic (79 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (1 commits)")

---

Tags

databasegraphgraphdatabasegraphdbnosqlogmogm-arangodbormphpphp-arangodbdatabaseormenvironmentogmArangoDbgraph database

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/neosmic-arangodb-php-ogm/health.svg)

```
[![Health](https://phpackages.com/badges/neosmic-arangodb-php-ogm/health.svg)](https://phpackages.com/packages/neosmic-arangodb-php-ogm)
```

###  Alternatives

[triagens/arangodb

ArangoDB PHP client

186189.4k19](/packages/triagens-arangodb)[laravel-freelancer-nl/aranguent

Laravel bridge for the ArangoDB Multi-model database

517.0k](/packages/laravel-freelancer-nl-aranguent)[friendsofsymfony1/doctrine1

PHP Database ORM for Symfony1. Do NOT use for new projects: please move to a newest Symfony release and Doctrine2

40581.8k](/packages/friendsofsymfony1-doctrine1)[f21/paradox

Paradox is an elegant Object Document Mananger (ODM) to use with the ArangoDB Document/Graph database server.

256.8k](/packages/f21-paradox)[icanboogie/activerecord

ActiveRecord Object-relational mapping

135.0k2](/packages/icanboogie-activerecord)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
