frankmayer/arangodb-php-core

ArangoDB-PHP-Core is a low level PHP Client for the ArangoDB Database

dev-master 2017-02-13 10:38 UTC

README

##ArangoDB-PHP-Core

A lightweight, and at the same time flexible low-level ArangoDB client for PHP.

Latest Stable Version Total Downloads Latest Unstable Version License composer.lock codecov

PHP_Compatibility HHVM_Compatibility

Master: Build Status Devel: Build Status

Join the chat at https://gitter.im/frankmayer/ArangoDB-PHP-Core

####Purpose:

The core client should serve as a flexible low level base for higher level client implementations (AR,ODM,OGM) to be built on top of it.

At this experimental stage, it does provide some abstraction of ArangoDB's API. It's still not quite clear if the api abstraction will in the end result in a different package or stay in the Core. The client should generally be seen as a basis that takes away the boilerplate code of setting up requests and managing responses (headers, statuses, etc...) with ArangoDB.

####Highlights:

  • Request / Response Objects
  • A wrapper around injectable connectors. Two packages are being worked on:
  • Flexibility through dependency injection:
    • Inject your own connector, Request or Response Objects
      • directly
      • via configuration resolution
      • via the client class's own simple IOC container
  • Register your plugins (for example a trace plugin)
  • Extend the core's functionality through traits (This is still in the makings)
  • supports ArangoDB's Async and Batch functionality
  • provides a toolbox for handling everything around communication with an ArangoDB server, such as url-, parameter- and header-building tools.
  • Includes a few test classes that provide basic testing functionality against the server and also a bit of insight on how to build a client on top of the core.

####PHP Versions:

Tested and Supported with PHP 7.0+ & HHVM 3.15.0+ (but will most probably work from HHVM 3.11.0 onwards) Note: With HHVM, php7 mode must be enabled in its ini file (hhvm.php7.all = true).

#####Caution: This project is at the moment in a highly experimental phase. The API is not yet stable and there most probably will be significant changes to it.

So, it's not recommended to build anything critical on top of it yet. ;) But... stay tuned...

#####Contributing

As the project is still in a highly experimental state, it's not yet open to pull requests. But I'd love to see contributions after the initial experimental phase is over. :) I'll let you know via this readme and my Twitter-feed: https://twitter.com/frankmayer_ Thanks !!

Major Todo's:
  • Decision on whether ArangoDB's API abstraction should be in core or externally supplied
  • Rework Batch implementation
  • stabilize contracts for interoperability
  • stabilize plugin API
  • Tests refactoring (+ upgrade to PHPUnit 6)
  • implement ArangoDB authentication
  • implement basic tracer plugin
  • provide docs generation functionality

######License: Apache V2, see https://github.com/frankmayer/ArangoDB-PHP-Core/blob/devel/LICENSE.md