(mongodb >=1.0.0)
MongoDB\Driver\Manager::__construct — Создает новый Manager MongoDB
$uri
= "mongodb://127.0.0.1/"
[, array $uriOptions
= array()
[, array $driverOptions
= array()
]]] )Создает новый объект MongoDB\Driver\Manager с переданными параметрами.
Замечание: В » спецификации по обнаружению и мониторингу сервера, этот конструктор не выполняет ввода-вывода. Соединения будут инициализироваться по требованию, когда выполняется первая операция.
Замечание: На Unix, драйвер MongoDB чувствителен к сценариям, которые используют системный вызов fork() без последующего exec(). Пользователям рекомендуется не переиспользовать экземпляр MongoDB\Driver\Manager в дочернем процессе. child process.
uri
URI-адрес подключения » mongodb://:
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
Подробнее о поддерживаемых параметрах, см. раздел » Параметры строки подключения в руководстве MongoDB. » Параметры пула подключения не поддерживаются, т.к. PHP-драйвер не реализует пулы подключений.
uri
- это URL, поэтому любые специальные символы в
его компонентах должны закодированы в соответствии
» RFC 3986. Это особенно
актуально для имени пользователя и пароля, которые часто могут содержать специальные
символы, такие как @, :, или
%. При подключении через доменный сокет Unix, путь
сокета может содержать специальные символы, например слеши, которые необходимо закодировать.
Функция rawurlencode() может использоваться для кодирования
составных частей URI-адреса.
uriOptions
Дополнительные
» параметры строки подключения,
которые будут перезаписывать любые параметры с тем же именем в параметре
uri
.
Название опции | Тип | Описание |
---|---|---|
appname | string |
В MongoDB 3.4+ появилась возможность добавлять аннотации к соединениям с метаданными, предоставляемыми подключающимся клиентом. Эти метаданные включаются в журналы логирования сервера при установлении соединения, а также записываются в журналы медленных запросов, если включено профилирование базы данных. Эта опция может использоваться для указания имени приложения, которое будет включено в метаданные. Значение не может превышать 128 символов. |
authMechanism | string |
Механизм аутентификации, который MongoDB будет использовать для аутентификации соединения. Для просмотра дополнительных сведений и списка поддерживаемых значений, см. раздел » Параметры аутентификации в руководстве MongoDB. |
authMechanismProperties | array |
Свойства для выбранного механизма аутентификации. Для просмотра дополнительных сведений и списка поддерживаемых значений, см. раздел » Спецификация аутентификации драйвера.
|
authSource | string |
Имя базы данных, связанное с учетными данными пользователя. По умолчанию используется компонент базы данных из URI-адреса соединения. Для механизмов аутентификации, которые делегируют хранение учетных данных другим службам (например, GSSAPI), значение должно быть "$external". |
canonicalizeHostname | boolean |
Если Этот параметр является устаревшим псевдонимом для свойства "CANONICALIZE_HOST_NAME" параметра URI "authMechanismProperties". |
compressors | string |
Имеющий приоритет, список разделенных запятыми компрессоров, которые клиент хочет использовать. Сообщения сжаты только в том случае, если клиент и сервер совместно используют любые компрессоры, а компрессор, используемый в каждом направлении, будет зависеть от индивидуальной конфигурации сервера или драйвера. Смотрите » Спецификация компресии драйвера для получения дополнительной информации. |
connectTimeoutMS | integer |
Время в миллисекунд, чтобы попытаться подключиться перед тайм-аутом. По умолчанию - 10 000 миллисекунд. |
gssapiServiceName | string |
Устанавливает имя службы Kerberos при подключении к керберизованными экземплярам MongoDB. Это значение должно совпадать именем службы, установленным в экземплярах MongoDB (т.е. с параметром сервер, » saslServiceName ). По умолчанию используется "mongodb". Этот параметр является устаревшим псевдонимом для свойства "SERVICE_NAME" параметра URI "authMechanismProperties". |
heartbeatFrequencyMS | integer |
Задает интервал в миллисекундах между проверками драйвера топологии MongoDB, отсчитываемыми с конца предыдущей проверки до начала следующей. По умолчанию - 60 000 миллисекунд. Согласно » Спецификации по обнаружению и мониторингу сервера, это значение не может быть меньше 500 миллисекунд. |
journal | boolean |
Соответствует параметру гарантий записи |
localThresholdMS | integer |
Размер в миллисекундах окна задержки для выбора среди нескольких подходящих экземпляров MongoDB при разрешении предпочтения чтения. По умолчанию - 15 миллисекунд. |
maxStalenessSeconds | integer |
Соответствует параметру предпочтениям чтения "maxStalenessSeconds". Указывает в секундах насколько устаревшим может быть вторичный узел в наборе реплик, прежде чем клиент перестанет его использовать для операций чтения. По умолчанию не задано максимальное отставание репликации (staleness) и клиенты не будут учитывать отставание вторичного узла при выборе при выборе направления операции чтения. Подробнее см. MongoDB\Driver\ReadPreference.
Если указана, максимальное отставание должно быть 32-битным целым числом,
большим или равным
|
password | string | Пароль для аутентификации пользователя. Эта опция полезна, если пароль содержит специальные символы, которые в противном случае должны были закодированы для URI-адреса подключения. |
readConcernLevel | string |
Соответствует параметру гарантий чтения level
Определяет уровень изоляции чтения. Подробнее см.
MongoDB\Driver\ReadConcern.
|
readPreference | string |
Соответствует параметру предпочтениям чтения |
readPreferenceTags | array |
Соответствует параметру предпочтениям чтения
|
replicaSet | string |
Задает имя набора реплики. |
retryReads | boolean |
Указывает, должен ли драйвер автоматически повторять
определенные операции чтения, которые не выполняются из-за временных сетевых ошибок
или выборов набора реплик. Требуется MongoDB 3.6+.
По умолчанию Смотрите » Спецификацию по Retryable Reads для получения дополнительной информации. |
retryWrites | boolean |
Указывает, должен ли драйвер автоматически повторять
определенные операции записи, которые не выполняются из-за временных сетевых ошибок
или выборов набора реплик. Требуется MongoDB 3.6+.
По умолчанию Смотрите » Retryable Writes в руководстве MongoDB для получения дополнительной информации. |
safe | boolean |
Если Эта опция устарела и не должна использоваться. |
serverSelectionTimeoutMS | integer |
Указывает как долго в миллисекунд блокировать выбор сервера перед выбросом исключения. По умолчанию - 30 000 миллисекунд. |
serverSelectionTryOnce | boolean |
Если |
slaveOk | boolean |
Указывает "secondaryPreferred" для режима
предпочтения чтения, если Эта опция устарела и не должна использоваться. |
socketCheckIntervalMS | integer |
Если сокет не использовался в последнее время, драйвер должен проверить с помощью команды isMaster, прежде чем использовать его для любой операции. По умолчанию - 5 000 миллисекунд. |
socketTimeoutMS | integer |
Время в миллисекундах, чтобы попытаться отправить или получить в сокет до истечения времени. По умолчанию - 300 000 миллисекунд (т.е. 5 минут). |
ssl | boolean |
Создает соединение с TLS/SSL, если Параметр является устаревшим псевдонимом для параметра URI "tls". |
tls | boolean |
Инициирует соединение с TLS/SSL, если |
tlsAllowInvalidCertificates | boolean |
Указывает, должен ли драйвер выдавать ошибку, если
сертификат TLS сервера недействителен. По умолчанию
Внимание
Отключение проверки сертификата создает уязвимость. |
tlsAllowInvalidHostnames | boolean |
Указывает, должен ли драйвер выдавать ошибку
при несоответствии имени хоста сервера и имени хоста, указанного
в сертификате TLS. По умолчанию Внимание
Отключение проверки сертификата создает уязвимость. Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle). |
tlsCAFile | string |
Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов. |
tlsCertificateKeyFile | string |
Путь к файлу сертификата клиента или файлу закрытого ключа клиента; в случае, если они оба необходимы, файлы должны быть объединены. |
tlsCertificateKeyFilePassword | string |
Пароль для расшифровки закрытого ключа клиента (т.е. параметра URI "tlsCertificateKeyFile"), который будет использоваться для соединений TLS. |
tlsInsecure | boolean |
Ослабьте ограничения TLS в максимально возможной степени.
При значении Внимание
Отключение проверки сертификата создает уязвимость. Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle). |
username | string | Имя пользователя для аутентификации. Эта опция полезна, если имя пользователя содержит специальные символы, которые в противном случае должны были быть закодированы в URL для URI-адреса подключения. |
w | integer|string |
Соответствует параметру гарантий записи |
wTimeoutMS | integer|string |
Соответствует параметру гарантий записи Если указан, wTimeoutMS должен быть 32-битным целым числом со знаком, большим или равным нулю. |
zlibCompressionLevel | integer |
Указывает уровень сжатия для использования zlib. Эта опция ничего не делает, если zlib не включен в URL опции "compressors". Смотрите » Спецификация компрессии драйвера для получения дополнительной информации. |
driverOptions
Опция | Тип | Описание | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
allow_invalid_hostname | boolean |
Отключает проверку имени хоста, если Разрешение недопустимых имен хоста может привести к атаке типа » "человек посередине" (man-in-the-middle). Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames" |
||||||||||||
ca_dir | string |
Путь к корректно захешированному каталогу сертификатов. По умолчанию будет использоваться хранилище системных сертификатов. |
||||||||||||
ca_file | string |
Путь к файлу с одним или несколькими центрами сертификации, которые следует считать доверенными при установлении соединения TLS. По умолчанию будет использоваться хранилище системных сертификатов. Параметр является устаревшим псевдонимом для параметра URI "tlsCAFile". |
||||||||||||
context | resource |
Параметры контекста SSL для использования в качестве запасного варианта, если не указана опция драйвера или эквивалентная ей опция URI. Обратите внимание, что драйвер не обращается к контексту потока по умолчанию (т.е. stream_context_get_default()). Поддерживаются следующие параметры контекста:
Параметр поддерживается для обратной совместимости, но его следует считать устаревшим. |
||||||||||||
crl_file | string | Путь к файлу списка аннулированных сертификатов. | ||||||||||||
pem_file | string |
Путь к сертификату в формате PEM для аутентификации клиента. Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFile". |
||||||||||||
pem_pwd | string |
Парольная фраза к PEM-закодированному сертификату (если есть). Этот параметр является устаревшим псевдонимом для параметра URI "tlsCertificateKeyFilePassword". |
||||||||||||
weak_cert_validation | boolean |
Отключает проверку сертифика, если Этот параметр является устаревшим псевдонимом для параметра URI "tlsAllowInvalidHostnames". |
uri
выбрасывает исключение MongoDB\Driver\Exception\RuntimeException.
Версия | Описание |
---|---|
1.6.0 |
Добавлены параметры URI "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", и "tlsInsecure".
Параметр URI "retryWrites" по умолчанию |
1.5.0 |
"wtimeoutMS" теперь всегда проверяется и применяется к гарантии записи. Ранее эта опция игнорировалась, если "w" был <= 1, поскольку тайм-аут применяется только к репликации. |
1.4.0 |
Добавлены опции URI "compressors", "retryWrites" и "zlibCompressionLevel". |
1.3.0 |
В аргументе |
1.2.0 |
Аргумент Добавлен 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". |
1.1.0 |
Аргумент |
Пример #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:[email protected]/mydatabase");
?>
Подключение к MongoDB с учетными данными аутентификации для конкретного пользователя и базы данных, где имя пользователя или пароль содержат специальные символы (e.g. @, :, %). В следующем примере, строка с паролем myp@ss:w%rd была вручную экранирована; однако rawurlencode() может использоваться для экранирования URI-компонетов, которые могут содержать специальные символы.
<?php
$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%[email protected]/mydatabase");
?>
Подключение к MongoDB с аутентификацией X509:
<?php
$manager = new MongoDB\Driver\Manager(
"mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
[],
[
"pem_file" => "/path/to/client.pem",
]
);
?>