diff --git a/adminer/drivers/mongo.inc.php b/adminer/drivers/mongo.inc.php index 26b757b6..bfa35d79 100644 --- a/adminer/drivers/mongo.inc.php +++ b/adminer/drivers/mongo.inc.php @@ -213,15 +213,14 @@ if (isset($_GET["mongo"])) { var $_db, $_db_name; function connect($uri, $options) { - $class = 'MongoDB\Driver\Manager'; - $this->_link = new $class($uri, $options); + + $this->_link = new MongoDB\Driver\Manager($uri, $options); $this->executeCommand('admin', array('ping' => 1)); } function executeCommand($db, $command) { - $class = 'MongoDB\Driver\Command'; try { - return $this->_link->executeCommand($db, new $class($command)); + return $this->_link->executeCommand($db, new MongoDB\Driver\Command($command)); } catch (Exception $e) { $this->error = $e->getMessage(); return array(); @@ -338,9 +337,8 @@ if (isset($_GET["mongo"])) { } $limit = min(200, max(1, (int) $limit)); $skip = $page * $limit; - $class = 'MongoDB\Driver\Query'; try { - return new Min_Result($connection->_link->executeQuery("$connection->_db_name.$table", new $class($where, array('projection' => $select, 'limit' => $limit, 'skip' => $skip, 'sort' => $sort)))); + return new Min_Result($connection->_link->executeQuery("$connection->_db_name.$table", new MongoDB\Driver\Query($where, array('projection' => $select, 'limit' => $limit, 'skip' => $skip, 'sort' => $sort)))); } catch (Exception $e) { $connection->error = $e->getMessage(); return false; @@ -351,8 +349,7 @@ if (isset($_GET["mongo"])) { global $connection; $db = $connection->_db_name; $where = sql_query_where_parser($queryWhere); - $class = 'MongoDB\Driver\BulkWrite'; - $bulk = new $class(array()); + $bulk = new MongoDB\Driver\BulkWrite(array()); if (isset($set['_id'])) { unset($set['_id']); } @@ -375,8 +372,7 @@ if (isset($_GET["mongo"])) { global $connection; $db = $connection->_db_name; $where = sql_query_where_parser($queryWhere); - $class = 'MongoDB\Driver\BulkWrite'; - $bulk = new $class(array()); + $bulk = new MongoDB\Driver\BulkWrite(array()); $bulk->delete($where, array('limit' => $limit)); return $connection->executeBulkWrite("$db.$table", $bulk, 'getDeletedCount'); } @@ -384,8 +380,7 @@ if (isset($_GET["mongo"])) { function insert($table, $set) { global $connection; $db = $connection->_db_name; - $class = 'MongoDB\Driver\BulkWrite'; - $bulk = new $class(array()); + $bulk = new MongoDB\Driver\BulkWrite(array()); if ($set['_id'] == '') { unset($set['_id']); } @@ -514,8 +509,7 @@ if (isset($_GET["mongo"])) { $op = $match[1]; } elseif (preg_match('~^\(date\)(.+)~', $op, $match)) { $dateTime = new DateTime($val); - $class = 'MongoDB\BSON\UTCDatetime'; - $val = new $class($dateTime->getTimestamp() * 1000); + $val = new MongoDB\BSON\UTCDatetime($dateTime->getTimestamp() * 1000); $op = $match[1]; } switch ($op) { diff --git a/composer.json b/composer.json index 6bd0c13c..8b288def 100644 --- a/composer.json +++ b/composer.json @@ -42,6 +42,7 @@ "ext-mysql": "*", "ext-pgsql": "*", "ext-mongo": "*", + "ext-mongodb": "*", "ext-sqlsrv": "*", "ext-mssql": "*", "ext-oci8": "*",