arango recode
This commit is contained in:
@@ -2,75 +2,18 @@
|
||||
|
||||
namespace devgroup\arangodb;
|
||||
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\base\Object;
|
||||
use \triagens\ArangoDb\ConnectionOptions;
|
||||
|
||||
// set up some aliases for less typing later
|
||||
|
||||
use triagens\ArangoDb\ConnectionOptions as ArangoConnectionOptions;
|
||||
use triagens\ArangoDb\DocumentHandler as ArangoDocumentHandler;
|
||||
|
||||
use triagens\ArangoDb\Document as ArangoDocument;
|
||||
use triagens\ArangoDb\Exception as ArangoException;
|
||||
use triagens\ArangoDb\ConnectException as ArangoConnectException;
|
||||
use triagens\ArangoDb\ClientException as ArangoClientException;
|
||||
use triagens\ArangoDb\ServerException as ArangoServerException;
|
||||
use triagens\ArangoDb\UpdatePolicy as ArangoUpdatePolicy;
|
||||
use triagens\ArangoDb\Statement as Statement;
|
||||
|
||||
class ArangoDbConnection extends Object {
|
||||
private $_connection = null;
|
||||
public $connectionOptions = [
|
||||
// server endpoint to connect to
|
||||
ArangoConnectionOptions::OPTION_ENDPOINT => 'tcp://127.0.0.1:8529',
|
||||
// authorization type to use (currently supported: 'Basic')
|
||||
ArangoConnectionOptions::OPTION_AUTH_TYPE => 'Basic',
|
||||
// user for basic authorization
|
||||
ArangoConnectionOptions::OPTION_AUTH_USER => 'root',
|
||||
// password for basic authorization
|
||||
ArangoConnectionOptions::OPTION_AUTH_PASSWD => '',
|
||||
// connection persistence on server. can use either 'Close' (one-time connections) or 'Keep-Alive' (re-used connections)
|
||||
ArangoConnectionOptions::OPTION_CONNECTION => 'Close',
|
||||
// connect timeout in seconds
|
||||
ArangoConnectionOptions::OPTION_TIMEOUT => 3,
|
||||
// whether or not to reconnect when a keep-alive connection has timed out on server
|
||||
ArangoConnectionOptions::OPTION_RECONNECT => true,
|
||||
// optionally create new collections when inserting documents
|
||||
ArangoConnectionOptions::OPTION_CREATE => true,
|
||||
// optionally create new collections when inserting documents
|
||||
ArangoConnectionOptions::OPTION_UPDATE_POLICY => ArangoUpdatePolicy::LAST,
|
||||
];
|
||||
|
||||
private $_collectionHandler = null;
|
||||
private $_documentHandler = null;
|
||||
|
||||
public function __construct($config=[])
|
||||
class ArangoDbConnection extends \triagens\ArangoDb\Connection
|
||||
{
|
||||
public function json_encode_wrapper($data, $options = null)
|
||||
{
|
||||
parent::__construct($config);
|
||||
if ($this->getOption(ConnectionOptions::OPTION_CHECK_UTF8_CONFORM) === true) {
|
||||
self::check_encoding($data);
|
||||
}
|
||||
|
||||
$response = json_encode($data, $options | JSON_FORCE_OBJECT);
|
||||
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function init()
|
||||
{
|
||||
parent::init();
|
||||
|
||||
$this->_connection = new Connection($this->connectionOptions);
|
||||
$this->_collectionHandler = new \triagens\ArangoDb\CollectionHandler($this->_connection);
|
||||
$this->_documentHandler = new \triagens\ArangoDb\DocumentHandler($this->_connection);
|
||||
}
|
||||
|
||||
public function getDocument($collection, $id) {
|
||||
return $this->documentHandler()->get($collection, $id);
|
||||
}
|
||||
|
||||
public function documentHandler() {
|
||||
return $this->_documentHandler;
|
||||
}
|
||||
|
||||
public function statement($options=[]) {
|
||||
return new Statement($this->_connection, $options);
|
||||
}
|
||||
|
||||
public function collectionHandler() {
|
||||
return $this->_collectionHandler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user