PHP 7.4.0 alpha 2 Released

Класс MongoDB\Driver\Manager

(mongodb >=1.0.0)

Введение

Класс MongoDB\Driver\Manager является основной точкой входа в расширение. Он отвечает за поддержание соединений с MongoDB (будь то автономный сервер, набор реплик или распределенный кластер).

При инициализации класса Manager не происходит подключение к MongoDB Это означает, что MongoDB\Driver\Manager всегда может быть создан, даже если сервера MongoDB не работают.

Любая запись или запрос будут вызывать исключение cоединения, поскольку соединения создаются "лениво" (по требованию). Сервер MongoDB также может быть недоступе в течение всего времени выполнения скрипта. Поэтому важно, чтобы все действия с Manager были обернуты в блок try/catch.

Обзор классов

final MongoDB\Driver\Manager {
/* Методы */
final public __construct ([ string $uri = "mongodb://127.0.0.1/" [, array $uriOptions = array() [, array $driverOptions = array() ]]] )
final public executeBulkWrite ( string $namespace , MongoDB\Driver\BulkWrite $bulk [, array $options = array() ] ) : MongoDB\Driver\WriteResult
final public executeCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeQuery ( string $namespace , MongoDB\Driver\Query $query [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeReadWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public executeWriteCommand ( string $db , MongoDB\Driver\Command $command [, array $options = array() ] ) : MongoDB\Driver\Cursor
final public getReadConcern ( void ) : MongoDB\Driver\ReadConcern
final public getReadPreference ( void ) : MongoDB\Driver\ReadPreference
final public getServers ( void ) : array
final public getWriteConcern ( void ) : MongoDB\Driver\WriteConcern
final public selectServer ( MongoDB\Driver\ReadPreference $readPreference ) : MongoDB\Driver\Server
final public startSession ([ array $options ] ) : MongoDB\Driver\Session
}

Примеры

Пример #1 Простой пример использования MongoDB\Driver\Manager::__construct()

Выводит различную информацию о MongoDB\Driver\Manager с помощью функции var_dump(). Это может быть полезно для отладки, чтобы посмотреть как драйвер видит настройку MongoDB и какие опции используются.

<?php

$manager 
= new MongoDB\Driver\Manager("mongodb://localhost:27017");
var_dump($manager);

?>

Результатом выполнения данного примера будет что-то подобное:

object(MongoDB\Driver\Manager)#1 (3) {
  ["request_id"]=>
  int(1714636915)
  ["uri"]=>
  string(25) "mongodb://localhost:27017"
  ["cluster"]=>
  array(13) {
    ["mode"]=>
    string(6) "direct"
    ["state"]=>
    string(4) "born"
    ["request_id"]=>
    int(0)
    ["sockettimeoutms"]=>
    int(300000)
    ["last_reconnect"]=>
    int(0)
    ["uri"]=>
    string(25) "mongodb://localhost:27017"
    ["requires_auth"]=>
    int(0)
    ["nodes"]=>
    array(...)
    ["max_bson_size"]=>
    int(16777216)
    ["max_msg_size"]=>
    int(50331648)
    ["sec_latency_ms"]=>
    int(15)
    ["peers"]=>
    array(0) {
    }
    ["replSet"]=>
    NULL
  }
}

Содержание

add a note add a note

User Contributed Notes 2 notes

up
1
mike at eastghost dot com
10 months ago
According to Mongo, this (i.e., MongoDB\Driver\Manager) is an "entry point" for the extension:

"This class serves as an entry point for the MongoDB PHP Library. It is the preferred class for connecting to a MongoDB server or cluster of servers and acts as a gateway for accessing individual databases and collections. MongoDB\Client is analogous to the driver’s MongoDB\Driver\Manager class, which it composes."

copied from here: https://docs.mongodb.com/php-library/master/reference/class/MongoDBClient/

However, any comparison of the "mongodb" docs here on php.net versus the "mongodb driver" docs on mongo's site shows dramatic and ever-changing differences.
up
-8
Zalmoksis
1 year ago
It's worth noting that Manager is final, so you cannot mock it easily with tools like PhpUnit.
To Top