2017 © Pedro Peláez
 

library arango-silex

Model para trabalhar facilmente com ArangoDB

image

jsantos/arango-silex

Model para trabalhar facilmente com ArangoDB

  • Monday, January 23, 2017
  • by jacsonsantos
  • Repository
  • 1 Watchers
  • 2 Stars
  • 1 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 5 Versions
  • 0 % Grown

The README.md

Trabalhando com ArangoDB e Silex

Desenvolvi um Model e ServiceProvider que utiliza a Library oficial do ArangoDB para trabalhar com PHP, assim facilitando a manipulação de dados em sua aplicação., (*1)

Adicionando Arango-Silex a minha Aplicação

composer require jsantos/arango-silex dev-master

Estrutura de diretorio

Dentro de src existe dois diretorios, ArangoModel e Provider. * Dentro de Provider tem o Service (_ConnectionArangoServiceProvider.php_) de conexão com Banco de Dados ArangoDB. * Em ArangoModel temos o Model_ (_ArangoModel.php), onde possui as funcionalidades que ajudaram a munipular os dados de sua aplicação., (*2)

Configurando conexão com ArangoDB

Dentro de sua aplicação, escolha um diretorio de sua preferencia para criar o arquivo de conexão com ArangoDB, após escolher um diretorio, siga os passos a seguir. Exemplo: Criando arquivo de conexão., (*3)

Criaremos uma class ConnectionArango que extende ConnectionArangoServiceprovider e iniciaremos algumas configurações do banco ArangoDB. Precisaremos apenas de 3 atributos, $database, $authUser e $authPassword., (*4)

Todos: * protected $database * protected $endpoint * protected $authType * protected $authUser * protected $authPassword * protected $connection * protected $timeout * protected $reconnect * protected $create * protected $updatePolicy, (*5)

<?php
namespace Exemplo\Provider;

use JSantos\Provider\ConnectionArangoServiceProvider;

class ConnectionArango extends ConnectionArangoServiceProvider
{
    /**
     * Nome de seu Banco de Dados ArangoDB
     * @var string
     */
    protected $database = "meu_banco";
    /**
     * Usuario de seu Banco de Dados ArangoDB
     * @var string
     */
    protected $authUser = "meu_usuario";
    /**
     * Senha de seu Banco de Dados ArangoDB
     * @var string
     */
    protected $authPassword = "minha_senha";
}

Diretorio/Arquivo: exemplo/Provider/ConnectionArango.php, (*6)

Registrando Conexão no Silex

Registrando ConnectionArango que acabamos de fazer., (*7)

<?php
chdir(dirname(__DIR__));
require "vendor/autoload.php";

use Silex\Application;

    $app = new Application;

    $app['debug'] = true;

    //Registrando Service Controller
    $app->register(new \Silex\Provider\ServiceControllerServiceProvider());
    //Registrando Conexao com ArangoDB
    $app->register(new \Exemplo\Provider\ConnectionArango());

    $app->run();

Como usar o ArangoModel

Primeiro devemos registrar o Service Provider do ArangoModel(ArangoModelServiceProvider)., (*8)

<?php
chdir(dirname(__DIR__));
require "vendor/autoload.php";

use Silex\Application;

    $app = new Application;

    $app['debug'] = true;

    //Registrando Service Controller
    $app->register(new \Silex\Provider\ServiceControllerServiceProvider());
    //Registrando Conexao com ArangoDB
    $app->register(new \Exemplo\Provider\ConnectionArango());
    //Registrando Service Provider de ArangoModel
    $app->register(new \JSantos\Provider\ArangoModelServiceProvider());

    $app->run();

Metodos ArangoModel

  • createCollection(string $newCollection)
  • hasCollection(string $nameCollection)
  • deleteCollection(string $nameCollection, array $data = [])
  • createDocument(string $nameCollection, array $data)
  • lastInsertId()
  • hasDocument(string $nameCollection,$idDocument)
  • getDocument(string $nameCollection, $idDocument)
  • updateDocument(string $nameCollection, $idDocument, array $data)
  • removeAttributeDocument(Document|array $document, string $attribute)
  • replaceDocument(string $nameCollection, Document $currentDocument, Document $newDocument)
  • removeDocument(Document|array $document)
  • prepare(string $queryAQL)
  • bindCollection(array $bindCollection)
  • bindValue(array $bindValue)
  • execute()
  • query(string $queryAQL)
  • searchInDocument(string $nameCollection, array $document)

Criando Collection

<?php
    $arango = $this->app['arango.model'];

    $newCollection = "users";

    if (!$arango->createCollection($newCollection)) {
        echo "error";
    }
    echo "success!";

Verifica se já existe Collection

<?php
    $arango = $this->app['arango.model'];

    $myCollection = "users";

    if ($arango->hasCollection($myCollection)) {
        echo "exist";
    }
    echo "no exist";

Deletando Collection

<?php
    $arango = $this->app['arango.model'];

    $myCollection = "users";

    if ($arango->hasCollection($myCollection)) {
        $arango->deleteCollection($myCollection);
    }

Criando Documentos em Collection

<?php
    $arango = $this->app['arango.model'];

    $collection = "users";

    if (!$arango->hasCollection($collection)) {
        $arango->createCollection($collection);
    }

    $data = [
        "email" => "jacsonk47@gmail.com",
        "password" => password_hash("jacson", PASSWORD_BCRYPT, ["cost"=>12])
    ];

   $idDocument =  $arango->createDocument($collection,$data);

The Versions

23/01 2017

dev-master

9999999-dev

Model para trabalhar facilmente com ArangoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jacson Santos

23/01 2017

v1.2.1.x-dev

1.2.1.9999999-dev

Model para trabalhar facilmente com ArangoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jacson Santos

23/01 2017

v1.2.0.x-dev

1.2.0.9999999-dev

Model para trabalhar facilmente com ArangoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jacson Santos

21/01 2017

v1.1.0.x-dev

1.1.0.9999999-dev

Model para trabalhar facilmente com ArangoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jacson Santos

21/01 2017

v1.0.0.x-dev

1.0.0.9999999-dev

Model para trabalhar facilmente com ArangoDB

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jacson Santos