PHP 8.4.2 Released!

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".

canonicalizeHostname bool

Если true, драйвер будет преобразовывать реальное имя хоста для IP-адреса сервера перед аутентификацией через SASL. Некоторые базовые слои GSSAPI уже делают это, но эта функциональность может быть отключена в их конфигурации (например, krb.conf). По умолчанию false.

Этот параметр является устаревшим псевдонимом для свойства "CANONICALIZE_HOST_NAME" параметра URI "authMechanismProperties".

compressors string

Имеющий приоритет, список разделённых запятыми компрессоров, которые клиент хочет использовать. Сообщения сжаты только в том случае, если клиент и сервер совместно используют любые компрессоры, а компрессор, используемый в каждом направлении, будет зависеть от индивидуальной конфигурации сервера или драйвера. Смотрите » Спецификация компрессии драйвера для получения дополнительной информации.

connectTimeoutMS int

Время ожидания в миллисекундах при попытке соединения. По умолчанию — 10 000 миллисекунд.

directConnection bool

Этот параметр можно использовать для управления поведением обнаружения набора реплик, если в строке подключения указан только один хост. По умолчанию, предоставление одного члена в строке подключения приведёт к установлению прямого подключения или обнаружению дополнительных членов в зависимости от того, отсутствует или отсутствует опция URI "replicaSet" соответственно. Укажите false, чтобы вызвать обнаружение (если "replicaSet" опущен) или укажите true, чтобы форсировать прямое соединение (если "replicaSet" присутствует).

gssapiServiceName string

Устанавливает имя службы Kerberos при подключении к керберизованными экземплярам MongoDB. Это значение должно совпадать именем службы, установленным в экземплярах MongoDB (т. е. с параметром сервер, » saslServiceName ). По умолчанию используется "mongodb".

Этот параметр является устаревшим псевдонимом для свойства "SERVICE_NAME" параметра URI "authMechanismProperties".

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 для получения дополнительной информации.

safe bool

Если true, указывает 1 для параметра w гарантии записи по умолчанию. Если false, указывается 0. Подробнее смотрите MongoDB\Driver\WriteConcern.

Эта опция устарела и не должна использоваться.

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".

ssl bool

Создаёт соединение с TLS/SSL, если true. По умолчанию - false.

Параметр является устаревшим псевдонимом для параметра URI "tls".

tls bool

Инициирует соединение с TLS/SSL, если true. По умолчанию 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
Опция Тип Описание
allow_invalid_hostname bool

Отключает проверку имени хоста, если true. По умолчанию — false.

Разрешение недопустимых имён хоста может привести к атаке типа » "человек посередине" (man-in-the-middle).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames"

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

Путь к корректно захешированному каталогу сертификатов. По умолчанию будет использоваться хранилище системных сертификатов.

ca_file string

Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов.

Параметр является устаревшим псевдонимом для параметра URI "tlsCAFile".

context resource

Параметры SSL-контекста, которые будут использоваться как запасной вариант, если опцию драйвера или эквивалентную ей URI-опцию, если имеется, не указали. Обратите внимание, что модуль не обращается к контексту потока по умолчанию (т. е. к функции stream_context_get_default()). Поддерживаются следующие параметры контекста:

Резервные параметры контекста SSL
Параметр драйвера Параметр контекста (запасной вариант)
ca_dir capath
ca_file cafile
pem_file local_cert
pem_pwd passphrase
weak_cert_validation allow_self_signed

Параметр поддерживается для обратной совместимости, но его следует считать устаревшим.

crl_file string Путь к файлу списка аннулированных сертификатов.
disableClientPersistence bool

Если значение равно true, этот менеджер будет использовать новый клиент библиотеки libmongoc, который не будет сохраняться или использоваться другими объектами Manager. Когда этот объект Manager будет освобождён, его клиент будет уничтожен, а все соединения будут закрыты. По умолчанию false.

Замечание: Отключение сохранения клиента обычно не рекомендуется.

driver array

Позволяет библиотеке более высокого уровня добавлять свои метаданные к рукопожатию сервера. По умолчанию модуль отправляет своё имя, версию и платформу (то есть PHP-версию) при рукопожатии. Для ключей name, version и platform этого массива можно указать строки, которые метод добавит к полям документа рукопожатия.

Замечание: Информация о рукопожатии ограничена 512 байтами. Модуль обрежет данные рукопожатия, чтобы соответствовать этой 512-байтовой строке. Библиотекам более высокого уровня рекомендуется сохранять свои метаданные краткими.

pem_file string

Путь к сертификату в формате PEM для аутентификации клиента.

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFile".

pem_pwd string

Парольная фраза к PEM-закодированному сертификату (если есть).

Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFilePassword".

serverApi MongoDB\Driver\ServerApi

Опция используется для объявления версии API сервера для менеджера. Если не указана, версия API не объявляется.

weak_cert_validation bool

Отключает проверку сертификат, если true. По умолчанию — false

Этот параметр является устаревшим псевдонимом для параметра 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
-2
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