MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

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

Описание

final public 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" указали.

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 миллисекунд.

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.

Поддерживаются следующие опции:

Опции для автоматического шифрования
Опция Тип Описание
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. Для получения дополнительной информации о разрешённых операциях смотрите » Руководство по шифрованию на стороне клиента.

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-версия не объявляется.

Ошибки

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

Версия Описание
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",
]
);
?>
Добавить

Примечания пользователей 2 notes

up
1
denys at bulakhweb dot com
7 years ago
Please note, if you send socketTimeoutMs value as 0 to disable timeout (according to MongoDB documentation), it will be considered as default value which is 300,000 ms in PHP driver. So send some really huge amount in case if you need to disable limitation.
up
-5
denys at bulakhweb dot com
7 years ago
Please note, if you send socketTimeoutMs value as 0 to disable timeout (according to MongoDB documentation), it will be considered as default value which is 300,000 ms in PHP driver. So send some really huge amount in case if you need to disable limitation.
To Top