arango recode
This commit is contained in:
100
Connection.php
100
Connection.php
@@ -2,18 +2,96 @@
|
||||
|
||||
namespace devgroup\arangodb;
|
||||
|
||||
use \triagens\ArangoDb\ConnectionOptions;
|
||||
use triagens\ArangoDb\CollectionHandler;
|
||||
use triagens\ArangoDb\ConnectionOptions;
|
||||
use triagens\ArangoDb\Document;
|
||||
use triagens\ArangoDb\DocumentHandler;
|
||||
use triagens\ArangoDb\Statement;
|
||||
use triagens\ArangoDb\UpdatePolicy;
|
||||
|
||||
class Connection extends \triagens\ArangoDb\Connection {
|
||||
public function json_encode_wrapper($data, $options = null)
|
||||
use yii\base\Object;
|
||||
|
||||
class Connection extends Object
|
||||
{
|
||||
private $connection = null;
|
||||
|
||||
public $connectionOptions = [
|
||||
// server endpoint to connect to
|
||||
ConnectionOptions::OPTION_ENDPOINT => 'tcp://127.0.0.1:8529',
|
||||
// authorization type to use (currently supported: 'Basic')
|
||||
ConnectionOptions::OPTION_AUTH_TYPE => 'Basic',
|
||||
// user for basic authorization
|
||||
ConnectionOptions::OPTION_AUTH_USER => 'root',
|
||||
// password for basic authorization
|
||||
ConnectionOptions::OPTION_AUTH_PASSWD => '',
|
||||
// connection persistence on server. can use either 'Close'
|
||||
// (one-time connections) or 'Keep-Alive' (re-used connections)
|
||||
ConnectionOptions::OPTION_CONNECTION => 'Close',
|
||||
// connect timeout in seconds
|
||||
ConnectionOptions::OPTION_TIMEOUT => 3,
|
||||
// whether or not to reconnect when a keep-alive connection has timed out on server
|
||||
ConnectionOptions::OPTION_RECONNECT => true,
|
||||
// optionally create new collections when inserting documents
|
||||
ConnectionOptions::OPTION_CREATE => true,
|
||||
// optionally create new collections when inserting documents
|
||||
ConnectionOptions::OPTION_UPDATE_POLICY => UpdatePolicy::LAST,
|
||||
];
|
||||
|
||||
/** @var null|CollectionHandler $collectionHandler */
|
||||
private $collectionHandler = null;
|
||||
/** @var null|DocumentHandler $documentHandler */
|
||||
private $documentHandler = null;
|
||||
|
||||
public function init()
|
||||
{
|
||||
if ($this->getOption(ConnectionOptions::OPTION_CHECK_UTF8_CONFORM) === true) {
|
||||
self::check_encoding($data);
|
||||
}
|
||||
parent::init();
|
||||
|
||||
|
||||
$response = json_encode($data, $options | JSON_FORCE_OBJECT);
|
||||
|
||||
return $response;
|
||||
$this->connection = new ArangoDbConnection($this->connectionOptions);
|
||||
$this->collectionHandler = new CollectionHandler($this->connection);
|
||||
$this->documentHandler = new DocumentHandler($this->connection);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null|CollectionHandler
|
||||
*/
|
||||
public function getCollectionHandler()
|
||||
{
|
||||
return $this->collectionHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $collectionId
|
||||
* @return \triagens\ArangoDb\Collection
|
||||
*/
|
||||
public function getCollection($collectionId)
|
||||
{
|
||||
return $this->getCollectionHandler()->get($collectionId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return null|DocumentHandler
|
||||
*/
|
||||
public function getDocumentHandler()
|
||||
{
|
||||
return $this->documentHandler;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $collectionId
|
||||
* @param $documentId
|
||||
* @return Document
|
||||
*/
|
||||
public function getDocument($collectionId, $documentId)
|
||||
{
|
||||
return $this->getDocumentHandler()->get($collectionId, $documentId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $options
|
||||
* @return Statement
|
||||
*/
|
||||
public function getStatement($options = [])
|
||||
{
|
||||
return new Statement($this->connection, $options);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user