Создаёт нового MongoDB-менеджера

# MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Создаёт нового MongoDB-менеджера

### Описание

final public function MongoDB\Driver\Manager::__construct(?string `$uri` = `null`, ?array `$uriOptions` = `null`, ?array `$driverOptions` = `null`)

Метод создаёт новый объект MongoDB\Driver\Manager с заданными параметрами.

> Замечание: В » спецификации по обнаружению и мониторингу сервера, этот конструктор не выполняет ввода-вывода. Соединения будут инициализироваться по требованию, когда выполняется первая операция.

> Замечание: При передаче любых URI-опций, которые связаны с SSL или TLS, через строку подключения или параметр `uriOptions`, модуль неявно включает TLS при соединениях. Чтобы предотвратить это, либо явно отключают опцию `tls`, либо не передают никаких TLS-опций.

> Замечание: На платформах Unix модуль чувствителен к сценариям, которые используют системный вызов fork() без последующего вызова exec(). Пользователям не рекомендуется переиспользовать экземпляр класса MongoDB\Driver\Manager в дочернем процессе. child process.

### Список параметров

`uri`

  URI-адрес подключения » mongodb://:

      mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[defaultAuthDb][?options]]

  Параметр примет значение по умолчанию `"mongodb://127.0.0.1:27017"`, если аргумент не передали.

  Подробнее о поддерживаемых URI-параметрах рассказывает раздел » Параметры строки подключения в руководстве MongoDB. » Параметры пула подключения не поддерживаются, поскольку модуль не реализует пулы подключений.

  `uri` — это URL, поэтому любые специальные символы в его компонентах должны закодированы в соответствии » RFC 3986. Это особенно актуально для имени пользователя и пароля, которые часто могут содержать специальные символы, такие как `@`, `:`, или `%`. При подключении через доменный сокет Unix, путь сокета может содержать специальные символы, например слеши, которые необходимо закодировать. Функция rawurlencode() может использоваться для кодирования составных частей URI-адреса.

  Компонент `defaultAuthDb` может использоваться для указания имени базы данных, связанной с учётными данными пользователя; однако параметр URI `authSource` будет иметь приоритет, если он указан. Если ни `defaultAuthDb`, ни `authSource` не указаны, база данных `admin` будет использоваться по умолчанию. Компонент `defaultAuthDb` не имеет смысла при отсутствии учётных данных пользователя.

`uriOptions`

  Дополнительные » параметры строки подключения, которые будут перезаписывать любые параметры с тем же именем в параметре `uri`.

  uriOptions
  Название опции | Тип | Описание
  --- | --- | ---
  appname | string | В MongoDB 3.4+ появилась возможность добавлять аннотации к соединениям с метаданными, предоставляемыми подключающимся клиентом. Эти метаданные включаются в журналы логирования сервера при установлении соединения, а также записываются в журналы медленных запросов, если включено профилирование базы данных. Эта опция может использоваться для указания имени приложения, которое будет включено в метаданные. Значение не может превышать 128 символов.
  authMechanism | string | Механизм аутентификации, который MongoDB будет использовать для аутентификации соединения. Для просмотра дополнительных сведений и списка поддерживаемых значений, смотрите раздел » Параметры аутентификации в руководстве MongoDB.
  authMechanismProperties | array | Свойства для выбранного механизма аутентификации. Для просмотра дополнительных сведений и списка поддерживаемых значений, смотрите раздел » Спецификация аутентификации драйвера. Замечание: Если не указана в строке URI-адреса, эта опция представляется в виде массива пар ключ-значение. Ключи и значения в этом массиве должны быть строками.
  authSource | string | Имя базы данных, связанное с учётными данными пользователя. По умолчанию используется компонент базы данных из URI-адреса соединения или база данных `admin`, если оба не указаны. Для механизмов аутентификации, которые делегируют хранение учётных данных другим службам (например, GSSAPI), значение должно быть `"$external"`.
  compressors | string | Приоритетный список разделённых запятыми компрессоров, которые требуется использовать клиенту. Сообщения сжаты, только если клиент и сервер совместно используют любые компрессоры, а компрессор, используемый в каждом направлении, будет зависеть от индивидуальной конфигурации сервера или драйвера. Дополнительную информацию даёт страница » Спецификация компрессии драйвера.
  connectTimeoutMS | int | Время ожидания в миллисекундах при попытке соединения. Значение по умолчанию равно 10 000 миллисекунд.
  directConnection | bool | Параметр управляет поведением при обнаружении набора реплик, если в строке подключения указали только один хост. По умолчанию предоставление одного члена в строке подключения устанавливается прямое подключение или обнаруживается дополнительное количество членов в зависимости от того, указали ли URI-параметр `"replicaSet"`. Укажите `false` для принудительного обнаружения, если опустили параметр `"replicaSet"`, или укажите `true`, чтобы форсировать прямое соединение, если параметр `"replicaSet"` указали.
  enableOverloadRetargeting | bool | Если установлено в `true`, форсирует выбор сервера после ошибки `SystemOverloadedError`. По умолчанию `false`.
  heartbeatFrequencyMS | int | Задаёт интервал в миллисекундах между проверками драйвера топологии MongoDB, которые отсчитываются с конца предыдущей проверки до начала следующей. Значение по умолчанию равно 60 000 миллисекунд. Согласно » Спецификации по обнаружению и мониторингу сервера, нельзя указывать значение меньше 500 миллисекунд.
  journal | bool | Соответствует параметру гарантий записи `journal`. Если `true`, для записи будет требоваться подтверждение от MongoDB, что операция была записана в журнал. Подробнее смотрите MongoDB\Driver\WriteConcern.
  loadBalanced | bool | Указывает, подключается ли драйвер к кластеру MongoDB через балансировщик нагрузки. Если `true`, драйвер может подключаться только к одному узлу (указанному либо строкой подключения, либо поиском SRV), параметр URI `"directConnection"` не может быть `true` и опция URI `"replicaSet"` должна быть опущена. По умолчанию `false`.
  localThresholdMS | int | Размер в миллисекундах окна задержки для выбора среди нескольких подходящих экземпляров MongoDB при разрешении предпочтения чтения. По умолчанию — 15 миллисекунд.
  maxAdaptiveRetries | int | Опция используется для изменения максимального числа повторов при возникновении ошибки `SystemOverloadedError`. Значение должно быть положительным целым; по умолчанию `2`.
  maxStalenessSeconds | int | Соответствует параметру предпочтения чтения `"maxStalenessSeconds"`. Указывает в секундах, насколько устаревшим может быть вторичный узел в наборе реплик, прежде чем клиент перестанет его использовать для операций чтения. По умолчанию не задано максимальное отставание репликации (staleness) и клиенты не будут учитывать отставание вторичного узла при выборе направления операции чтения. Подробнее об этом рассказано в описании класса MongoDB\Driver\ReadPreference. Если указана, максимальное отставание должно быть 32-битным целым числом, большим или равным `MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS` (т. е. 90 секунд).
  password | string | Пароль для аутентификации пользователя. Эта опция полезна, если пароль содержит специальные символы, которые в противном случае должны были закодированы для URI-адреса подключения.
  readConcernLevel | string | Соответствует параметру гарантий чтения `level` Определяет уровень изоляции чтения. Подробнее смотрите MongoDB\Driver\ReadConcern.
  readPreference | string | Соответствует параметру предпочтениям чтения `mode` По умолчанию — `"primary"`. Подробнее смотрите MongoDB\Driver\ReadPreference.
  readPreferenceTags | array | Соответствует параметру предпочтениям чтения `tagSets`. Наборы тегов позволяют настраивать операции чтения для определённых членов набора реплики. Подробнее смотрите MongoDB\Driver\ReadPreference. Замечание: Если в строке URI не указано, этот параметр представляется как как массив, соответствующий формату, ожидаемому MongoDB\Driver\ReadPreference::__construct().
  replicaSet | string | Задаёт имя набора реплики.
  retryReads | bool | Указывает, должен ли драйвер автоматически повторять определённые операции чтения, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию `true`. Смотрите » Спецификацию по Retryable Reads для получения дополнительной информации.
  retryWrites | bool | Указывает, должен ли драйвер автоматически повторять определённые операции записи, которые не выполняются из-за временных сетевых ошибок или выборов набора реплик. Требуется MongoDB 3.6+. По умолчанию `true`. Смотрите » Retryable Writes в руководстве MongoDB для получения дополнительной информации.
  serverSelectionTimeoutMS | int | Указывает как долго в миллисекунд блокировать выбор сервера перед выбросом исключения. По умолчанию — 30 000 миллисекунд.
  serverSelectionTryOnce | bool | Со значением `true` сообщает драйверу сканировать развёртывание MongoDB только один раз после неудачной попытки выбора сервера, а затем или выбрать сервер, или создать ошибку. Со значением `false` драйвер блокирует выбор и выполняет поиск сервера до истечения времени, которое указали в параметре `"serverSelectionTimeoutMS"`. Значение по умолчанию равно `true`.
  socketCheckIntervalMS | int | Если сокет не использовался в последнее время, драйвер должен проверить с помощью команды `hello`, прежде чем использовать его для любой операции. По умолчанию — 5 000 миллисекунд.
  socketTimeoutMS | int | Время в миллисекундах, чтобы попытаться отправить или получить в сокет до истечения времени. По умолчанию — 300 000 миллисекунд (т. е. 5 минут).
  srvMaxHosts | int | Максимальное количество результатов SRV для случайного выбора при первоначальном заполнении посевного списка или, во время опроса SRV, при добавлении новых узлов к топологии. По умолчанию `0` (т. е. без максимума).
  srvServiceName | string | Имя службы, используемое для поиска SRV в начальном списке DNS seedlist обнаружения и опроса SRV. По умолчанию `"mongodb"`.
  tls | bool | Со значением `true` инициирует соединение с TLS/SSL. Значение по умолчанию равно `false`.
  tlsAllowInvalidCertificates | bool | Указывает драйверу, выдавать ли ошибку, если TLS-сертификат сервера недействителен. Значение по умолчанию равно `false`. Внимание Отключение проверки сертификата создаёт уязвимость.
  tlsAllowInvalidHostnames | bool | Указывает, должен ли драйвер выдавать ошибку при несоответствии имени хоста сервера и имени хоста, указанного в сертификате TLS. По умолчанию `false`. Внимание Отключение проверки сертификата создаёт уязвимость. Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).
  tlsCAFile | string | Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов.
  tlsCertificateKeyFile | string | Путь к файлу сертификата клиента или файлу закрытого ключа клиента; в случае, если они оба необходимы, файлы должны быть объединены.
  tlsCertificateKeyFilePassword | string | Пароль для расшифровки закрытого ключа клиента (т. е. параметра URI `"tlsCertificateKeyFile"`), который будет использоваться для соединений TLS.
  tlsDisableCertificateRevocationCheck | bool | Если `true`, драйвер не будет пытаться проверить статус отзыва сертификата (например, OCSP, CRL). По умолчанию `false`.
  tlsDisableOCSPEndpointCheck | bool | Если `true`, драйвер не будет пытаться связаться с конечной точкой ответа OCSP, если это необходимо (то есть ответ OCSP не сшивается). По умолчанию `false`.
  tlsInsecure | bool | Ослабьте ограничения TLS в максимально возможной степени. При значении `true` этот параметр имеет тот же эффект, что и указание значения `true` для обоих параметров URI `"tlsAllowInvalidCertificates"` и `"tlsAllowInvalidHostnames"`. По умолчанию `false`. Внимание Отключение проверки сертификата создаёт уязвимость. Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).
  username | string | Имя пользователя для аутентификации. Эта опция полезна, если имя пользователя содержит специальные символы, которые в противном случае должны были быть закодированы в URL для URI-адреса подключения.
  w | int|string | Соответствует параметру гарантий записи `w`. Подробнее смотрите MongoDB\Driver\WriteConcern.
  wTimeoutMS | int|string | Соответствует параметру гарантий записи `wtimeout`. Указывает срок в миллисекундах для гарантии записи. Подробнее смотрите MongoDB\Driver\WriteConcern. Если указан, `wTimeoutMS` должен быть 32-битным целым числом со знаком, большим или равным нулю.
  zlibCompressionLevel | int | Указывает уровень сжатия для использования zlib. Эта опция ничего не делает, если `zlib` не включён в URL опции `"compressors"`. Смотрите » Спецификация компрессии драйвера для получения дополнительной информации.

`driverOptions`

  driverOptions
  Опция | Тип | Описание
  --- | --- | ---
  autoEncryption | array | Предоставляет опции для включения автоматического шифрования на уровне поля на стороне клиента. Список опций описан в таблице ниже. Замечание: Автоматическое шифрование — функция только для Enterprise версии, которая применяется только к операциям над коллекцией. Автоматическое шифрование не поддерживается для операций над базой данных или представлением, а операции, которые не обходятся, приведут к ошибке (смотрите » libmongocrypt: Список разрешений на автоматическое шифрование). Чтобы обойти автоматическое шифрование для всех операций, установите `bypassAutoEncryption` в значение `true`. Автоматическое шифрование требует, чтобы у аутентифицированного пользователя была привилегия » listCollections. Явное шифрование/дешифрование и автоматическая расшифровка — это функция Community версии. Драйвер все ещё может автоматически расшифровывать, если у опции `bypassAutoEncryption` установлено значение `true`.
  ca_dir | string | Путь к корректно захешированному каталогу сертификатов. По умолчанию будет использоваться хранилище системных сертификатов.
  crl_file | string | Путь к файлу списка аннулированных сертификатов.
  disableClientPersistence | bool | Со значением `true` менеджер будет использовать новый клиент библиотеки libmongoc, который не будет сохраняться или использоваться другими объектами Manager. Когда этот объект Manager освободится, его клиент уничтожится, а все соединения закроются. Значение по умолчанию равно `false`. Замечание: Отключение сохранения клиента обычно не рекомендуется.
  driver | array | Позволяет библиотеке более высокого уровня добавлять свои метаданные к рукопожатию сервера. По умолчанию модуль отправляет своё имя, версию и платформу (то есть PHP-версию) при рукопожатии. Для ключей `name`, `version` и `platform` этого массива можно указать строки, которые метод добавит к полям документа рукопожатия. Замечание: Информация о рукопожатии ограничена 512 байтами. Модуль обрежет данные рукопожатия, чтобы соответствовать этой 512-байтовой строке. Библиотекам более высокого уровня рекомендуется сохранять свои метаданные краткими.
  serverApi | MongoDB\Driver\ServerApi | Опция обновляет версию API-интерфейса сервера для менеджера. Без опции API-версия не объявляется.

  Опции, поддерживаемые автоматическим шифрованием с помощью `autoEncryption`:

  autoEncryption
  Опция | Тип | Описание
  --- | --- | ---
  keyVaultClient | MongoDB\Driver\Manager | Менеджер маршрутизации запросов ключей данных в отдельный кластер MongoDB. По умолчанию метод выбирает текущий менеджер и кластер.
  keyVaultNamespace | string | Полное пространство имён (например, `"databaseName.collectionName"`), обозначающее коллекцию, которая содержит все ключи данных, используемые для шифрования и дешифрования. Обязательный параметр.
  kmsProviders | array | Документ, содержащий конфигурацию для одного или нескольких провайдеров KMS, которые используются для шифрования ключей данных. Поддерживаются провайдеры `"aws"`, `"azure"`, `"gcp"` и `"local"`, и, по крайней мере, один из них должен быть указан. Если для `"aws"`, `"azure"` или `"gcp"` указан пустой документ, драйвер попытается сконфигурировать провайдера, используя » Автоматические учётные данные. Формат для `"aws"` выглядит следующим образом:
      aws: {
          accessKeyId: <string>,
          secretAccessKey: <string>,
          sessionToken: <optional string>
      }
  Формат для `"azure"` выглядит следующим образом:
      azure: {
          tenantId: <string>,
          clientId: <string>,
          clientSecret: <string>,
          identityPlatformEndpoint: <optional string> // По умолчанию "login.microsoftonline.com"

      }
  Формат для `"gcp"` выглядит следующим образом:
      gcp: {
          email: <string>,
          privateKey: <base64 string>|<MongoDB\BSON\Binary>,
          endpoint: <optional string> // По умолчанию "oauth2.googleapis.com"

      }
  Формат для `"kmip"` выглядит следующим образом:
      kmip: {
          endpoint: <string>
      }
  Формат для `"local"` выглядит следующим образом:
      local: {
          // 96-байтовый главный ключ, используемый для шифрования/дешифрования ключей данных
          key: <base64 string>|<MongoDB\BSON\Binary>
      }
  tlsOptions | array | Документ, содержащий конфигурацию TLS для одного или нескольких KMS провайдеров. Поддерживаются провайдеры `"aws"`, `"azure"`, `"gcp"` и `"kmip"`. Все провайдеры поддерживают следующие опции:
      <provider>: {
          tlsCaFile: <optional string>,
          tlsCertificateKeyFile: <optional string>,
          tlsCertificateKeyFilePassword: <optional string>,
          tlsDisableOCSPEndpointCheck: <optional bool>
      }
  schemaMap | array|object | Карта пространств имён коллекции в локальную схему JSON. Используется для настройки автоматического шифрования. Дополнительную информацию смотрите в » Правилах автоматического шифрования в руководстве по MongoDB. Ошибкой является указание коллекции как в `schemaMap`, так и в `encryptedFieldsMap`. Замечание: Добавление `schemaMap` обеспечивает большую безопасность, чем использование схем JSON, полученных с сервера. Это защищает от вредоносного сервера, рекламирующего ложную схему JSON, которая может заставить клиента отправлять незашифрованные данные, которые должны быть зашифрованы. Замечание: Схемы, поставляемые в `schemaMap`, применяются только для настройки автоматического шифрования на стороне клиента. Другие правила проверки в схеме JSON не будут применяться драйвером и приведут к ошибке.
  bypassAutoEncryption | bool | Если `true`, `mongocryptd` не будет появляться автоматически. Используется для отключения автоматического шифрования. По умолчанию `false`.
  bypassQueryAnalysis | bool | Если `true`, автоматический анализ исходящих команд будет отключён и `mongocryptd` не будет появляться автоматически. Это позволяет использовать явное шифрование для запроса индексированных полей без необходимости использования лицензированной корпоративной библиотеки `crypt_shared` или процесса `mongocryptd`. По умолчанию установлено значение `false`.
  encryptedFieldsMap | array|object | Карта пространств имён коллекции в документе `encryptedFields`. Используется для настройки шифрования с возможностью запроса. Смотрите » Шифрование полей и возможность запросов в руководстве по MongoDB для получения дополнительной информации. Ошибкой является указание коллекции как в `encryptedFieldsMap`, так и в `schemaMap`. Замечание: Указание `encryptedFieldsMap` обеспечивает большую безопасность, чем полагаться на `encryptedFields`, полученные от сервера. Это защищает от злонамеренного сервера, рекламирующего ложные `encryptedFields`.
  extraOptions | array | `extraOptions` относится к процессу `mongocryptd`. Поддерживаются следующие параметры: `mongocryptdURI` (string): URI для подключения к существующему процессу `mongocryptd`. По умолчанию `"mongodb://localhost:27020"`. `mongocryptdBypassSpawn` (bool): Если `true`, предотвращает создание драйвером `mongocryptd`. По умолчанию `false`. `mongocryptdSpawnPath` (string): Абсолютный путь для поиска двоичного файла `mongocryptd`. По умолчанию это пустая строка, использующая системные пути. `mongocryptdSpawnArgs` (array): Массив строковых аргументов для передачи в `mongocryptd` при создании. По умолчанию `["--idleShutdownTimeoutSecs=60"]`. `cryptSharedLibPath` (string): Абсолютный путь к библиотеке общего доступа `crypt_shared`. По умолчанию — пустая строка и использует системные пути. `cryptSharedLibRequired` (bool): Если `true`, требует, чтобы драйвер загружал `crypt_shared`. По умолчанию `false`. Смотрите » Руководство по шифрованию на стороне клиента, чтобы получить больше информации.

  > Замечание: Автоматическое шифрование — это только корпоративная функция, которая применяется только к операциям над коллекцией. Автоматическое шифрование не поддерживается для операций с базой данных или представлением, операции, которые не получится обойти, приведут к ошибке. Чтобы обойти автоматическое шифрование для всех операций, установите `bypassAutoEncryption=true` в `autoEncryption`. Для получения дополнительной информации о разрешённых операциях смотрите » Руководство по шифрованию на стороне клиента.

### Ошибки

- При ошибке парсинга аргумента метод выбрасывает исключение MongoDB\Driver\Exception\InvalidArgumentException.
- При неверном формате `uri` выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.

### Список изменений

Версия | Описание
--- | ---
PECL-модуль mongodb 2.0.0 | Удалили URI-параметр `"canonicalizeHostname"`. Вместо него указывают свойство URI-параметра `"authMechanismProperties"` — `"CANONICALIZE_HOST_NAME"`. Удалили URI-параметр `"gssapiServiceName"`. Вместо него указывают свойство URI-параметра `"authMechanismProperties"` — `"SERVICE_NAME"`. Удалили URI-параметр `"safe"` URI. Вместо него указывают URI-параметры `"w"` и `"wTimeoutMS"`. Удалили URI-параметр `"ssl"`. Вместо него указывают URI-параметр `"tls"`. Удалили драйверный параметр `"allow_invalid_hostname"`. Вместо него указывают URI-параметр `"tlsAllowInvalidHostnames"`. Удалили драйверный параметр `"ca_file"`. Вместо него указывают URI-параметр `"tlsCAFile"`. Удалили драйверный параметр `"context"`. Параметры контекста устарели в пользу URI-параметров, которые связаны с TLS. Удалили драйверный параметр `"pem_file"`. Вместо него указывают URI-параметр `"tlsCertificateKeyFile"`. Удалили драйверный параметр `"pem_pwd"`. Вместо него указывают URI-параметр `"tlsCertificateKeyFilePassword"`. Удалили драйверный параметр `"weak_cert_validation"`. Вместо него указывают URI-параметр `"tlsAllowInvalidCertificates"`.
PECL-модуль mongodb 1.16.0 | Провайдер AWS KMS для шифрования на стороне клиента теперь принимает параметр `"sessionToken"`, который можно использовать для аутентификации с временными учётными данными AWS. Добавили `"tlsDisableOCSPEndpointCheck"` в поле `"tlsOptions"` поля `"autoEncryption"` опции драйвера. Драйвер попытается сконфигурировать провайдера, заполнив » Автоматические учётные данные, если для KMS-провайдеров `"azure"` или `"gcp"` указали пустой документ.
PECL-модуль mongodb 1.15.0 | Драйвер попытается сконфигурировать провайдера, заполнив » Автоматические учётные данные, если для KMS-провайдера `"aws"` указали пустой документ.
PECL-модуль mongodb 1.14.0 | Добавили опции автоматического шифрования `"bypassQueryAnalysis"` и `"encryptedFieldsMap"`. Дополнительные опции, относящиеся к `crypt_shared`, теперь поддерживаются в опции автоматического шифрования `"extraOptions"`. option.
PECL-модуль mongodb 1.13.0 | Добавили URI-параметры `"srvMaxHosts"` и `"srvServiceName"`.
PECL-модуль mongodb 1.12.0 | KMIP теперь поддерживается как KMS-провайдер для шифрования на стороне клиента и настраивается через поле `"kmsProviders"` параметра драйвера `"autoEncryption"`. Кроме того, параметры TLS для KMS-провайдеров теперь настраиваются в поле `"tlsOptions"` параметра драйвера `"autoEncryption"`.
PECL-модуль mongodb 1.11.0 | Добавили URI-параметр `"loadBalanced"`.
PECL-модуль mongodb 1.10.0 | Добавили драйверный параметр `"disableClientPersistence"`. Azure и GCP теперь поддерживаются как поставщик KMS для шифрования на стороне клиента и могут быть настроены в поле `"kmsProviders"` параметра драйвера `"autoEncryption"`. Строки в кодировке Base64 теперь принимаются как альтернатива MongoDB\BSON\Binary для параметров внутри `"kmsProviders"`.
PECL-модуль mongodb 1.8.0 | Добавили URI-параметры `"directConnection"`, `"tlsDisableCertificateRevocationCheck"` и `"tlsDisableOCSPEndpointCheck"`. Добавили драйверный параметр `"driver"`.
PECL-модуль mongodb 1.7.0 | Добавили драйверный параметр `"autoEncryption"`. Указание любой опции SSL или TLS в параметре `driverOptions` теперь неявно включает TLS, как это делается для соответствующих URI-параметров.
PECL-модуль mongodb 1.6.0 | Добавили URI-параметры `"retryReads"`, `"tls"`, `"tlsAllowInvalidCertificates"`, `"tlsAllowInvalidHostnames"`, `"tlsCAFile"`, `"tlsCertificateKeyFile"`, `"tlsCertificateKeyFilePassword"` и `"tlsInsecure"`. Значение URI-параметра `"retryWrites"` теперь по умолчанию равно `true`. Передача URI-опции SSL или TLS через строку подключения или параметр `uriOptions` теперь неявно включает TLS, при условии, если значения `ssl` или `tls` не равны `false`. TSL не включается неявно для любых опций в параметре `driverOptions`, как в предыдущих версиях.
PECL-модуль mongodb 1.5.0 | Параметр `"wtimeoutMS"` теперь всегда проверяется и применяется к гарантии записи. Раньше параметр игнорировался, если значение параметра `"w"` оказывалось <= 1, поскольку время ожидания применяется только к репликации.
PECL-модуль mongodb 1.4.0 | Добавили URI-параметры `"compressors"`, `"retryWrites"` и `"zlibCompressionLevel"`.
PECL-модуль mongodb 1.3.0 | В аргументе `uriOptions` появились опции `"authMechanism"` и `"authMechanismProperties"`. Раньше эти опции поддерживались только в аргументе `uri`.
PECL-модуль mongodb 1.2.0 | Аргумент `uri` по умолчанию теперь равен `"mongodb://127.0.0.1/"`. Порт по умолчанию не изменился — `27017`. Добавили URI-параметр `"appname"`. Добавили драйверные параметры `"allow_invalid_hostname"`, `"ca_file"`, `"ca_dir"`, `"clr_file"`, `"pem_file"`, `"pem_pwd"` и `"weak_cert_validation"`. API-интерфейс PHP-потоков больше не задействуется для соединения с сокетом. Значение URI-параметра `connectTimeoutMS` по умолчанию теперь равно 10 секундам вместо значения опции default_socket_timeout, как было в предыдущих версиях. Кроме того, модуль больше не поддерживает параметры SSL-контекста через параметр драйвера `context`.
PECL-модуль mongodb 1.1.0 | Аргумент `uri` стал необязательным и по умолчанию равен `"mongodb://localhost:27017/"`.

### Примеры

Пример #1 Примеры работы метода MongoDB\Driver\Manager::__construct()

Подключение к автономному узлу MongoDB:

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://example.com:27017");

    ?>

Подключение к автономному узлу СУБД MongoDB через доменный сокет Unix. Путь сокета допускает специальные символы наподобие слешей, которые требуется закодировать функцией rawurlencode().

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://" . rawurlencode("/tmp/mongodb-27017.sock"));

    ?>

Подключение к набору реплик:

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet");

    ?>

Подключение к сегментированному кластеру (т. е. одну или нескольким экземплярам mongos):

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://mongos1.example.com,mongos2.example.com/");

    ?>

Подключение к MongoDB с учётными данными аутентификации для конкретного пользователя и базы данных:

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");

    ?>

Подключение к MongoDB с учётными данными аутентификации для конкретного пользователя и базы данных, где имя пользователя или пароль содержат специальные символы (например, `@`, `:`, `%`). В следующем примере, строка с паролем `myp@ss:w%rd` была вручную экранирована; однако rawurlencode() может использоваться для экранирования URI-компонентов, которые могут содержать специальные символы.

    <?php

    $manager = new MongoDB\Driver\Manager("mongodb://myusername:mypassword@example.com/?authSource=databaseName");

    ?>

Подключение к MongoDB с аутентификацией X509:

    <?php

    $manager = new MongoDB\Driver\Manager(
        "mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
        [],
        [
            "pem_file" => "/path/to/client.pem",
        ]
    );
    ?>

### Смотрите также

- Обработка подключения и сохранение
- » Формат строки соединения MongoDB

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open