PHP8 MongoDB\Driver\Manager::__construct

2024-04-08 10:15 更新

(mongoDB >=1.0.0)

MongoDB\Driver\Manager::__construct — 創(chuàng)建新的MongoDB管理器

說明

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

使用指定的選項(xiàng)構(gòu)造新的 MongoDB\Driver\Manager 對(duì)象。

注意: 根據(jù) ? 服務(wù)器發(fā)現(xiàn)和監(jiān)控規(guī)范, 此構(gòu)造函數(shù)不執(zhí)行 I/O。 連接將按需初始化, 執(zhí)行第一個(gè)操作時(shí)。
注意: 通過連接字符串或 uriOptions 參數(shù)指定任何 SSL 或 TLS URI 選項(xiàng)時(shí),驅(qū)動(dòng)程序?qū)㈦[式 為其連接啟用 TLS。若要避免這種情況,請(qǐng)顯式禁用 tls 選項(xiàng),或者不指定任何 TLS 選項(xiàng)。
注意: 在 Unix 平臺(tái)上,MongoDB 驅(qū)動(dòng)程序?qū)κ褂?fork() 系統(tǒng)調(diào)用,而不調(diào)用 exec()。建議用戶不要 在分叉中重用 MongoDB\Driver\Manager 實(shí)例 子進(jìn)程。

參數(shù) 

uri

A ? mongodb:// 連接 URI:

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

有關(guān)支持的 URI 選項(xiàng)的詳細(xì)信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 連接字符串選項(xiàng)。? 不支持連接池選項(xiàng),因?yàn)?PHP 驅(qū)動(dòng)程序不實(shí)現(xiàn)連接池。

是一個(gè) URL,因此任何特殊字符 其組件需要根據(jù) ? RFC 3986 進(jìn)行 URL 編碼。這尤其 與用戶名和密碼相關(guān),通??梢园ㄌ厥?字符,例如 、 或 。通過 Unix 域套接字連接時(shí),套接字 path 可能包含特殊字符(如斜杠),并且必須進(jìn)行編碼。 rawurlencode() 函數(shù)可用于編碼 URI 的組成部分。uri@:%

該組件可用于指定 與用戶憑據(jù)關(guān)聯(lián)的數(shù)據(jù)庫名稱;但是,如果指定,則 URI 選項(xiàng)將具有優(yōu)先級(jí)。 如果既未指定,也未指定,則默認(rèn)使用數(shù)據(jù)庫。在沒有用戶憑據(jù)的情況下,該組件不起作用。defaultAuthDbauthSourcedefaultAuthDbauthSourceadmindefaultAuthDb

uriOptions

其他 ? 連接字符串選項(xiàng), 這將覆蓋參數(shù)中具有相同名稱的任何選項(xiàng)。uri

uri選項(xiàng)
選擇類型描述
應(yīng)用名稱字符串

MongoDB 3.4+ 能夠使用元數(shù)據(jù)注釋連接 由連接客戶端提供。此元數(shù)據(jù)包含在 服務(wù)器在建立連接時(shí)的日志,并記錄在 啟用數(shù)據(jù)庫分析時(shí)查詢?nèi)罩舅俣容^慢。

此選項(xiàng)可用于指定應(yīng)用程序名稱,該名稱將 包含在元數(shù)據(jù)中。該值不能超過 128 個(gè)字符 在長(zhǎng)度上。

auth機(jī)制字符串

MongoDB 將用于身份驗(yàn)證的身份驗(yàn)證機(jī)制 連接。有關(guān)其他詳細(xì)信息和支持的列表 值,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 身份驗(yàn)證選項(xiàng)。

authMechanism屬性數(shù)組

所選身份驗(yàn)證機(jī)制的屬性。對(duì)于其他 有關(guān)詳細(xì)信息和支持的屬性列表,請(qǐng)參閱 ? 驅(qū)動(dòng)程序身份驗(yàn)證規(guī)范。

注意: 如果未在 URI 字符串中指定,則此選項(xiàng)表示為 鍵/值對(duì)的數(shù)組。此數(shù)組中的鍵和值 應(yīng)該是字符串。

authSource字符串

與用戶憑據(jù)關(guān)聯(lián)的數(shù)據(jù)庫名稱。違約 添加到連接 URI 的數(shù)據(jù)庫組件,如果兩者都未指定,則添加到數(shù)據(jù)庫。admin

對(duì)于將憑據(jù)存儲(chǔ)委派給的身份驗(yàn)證機(jī)制 其他服務(wù)(例如 GSSAPI),這應(yīng)該是 ."$external"

canonicalize主機(jī)名布爾

如果為 true,驅(qū)動(dòng)程序?qū)⒔馕龇?wù)器的真實(shí)主機(jī)名 通過 SASL 進(jìn)行身份驗(yàn)證之前的 IP 地址。一些底層 GSSAPI 圖層已經(jīng)執(zhí)行此操作,但該功能可能會(huì)在 他們的配置(例如)。默認(rèn)值為 false。krb.conf

此選項(xiàng)是 URI 選項(xiàng)屬性的已棄用別名。"CANONICALIZE_HOST_NAME""authMechanismProperties"

壓縮機(jī)字符串

客戶端的壓縮器的優(yōu)先級(jí)、逗號(hào)分隔的列表 想要使用。僅當(dāng)客戶端和服務(wù)器 共享任何通用壓縮機(jī),以及每個(gè)壓縮機(jī)中使用的壓縮機(jī) 方向?qū)⑷Q于服務(wù)器的個(gè)別配置 或司機(jī)。有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 驅(qū)動(dòng)程序壓縮規(guī)范。

connectTimeoutMS (連接超時(shí)MS)國際

超時(shí)前嘗試連接的時(shí)間(以毫秒為單位)。 默認(rèn)值為 10,000 毫秒。

直接連接布爾

此選項(xiàng)可用于控制副本集發(fā)現(xiàn)行為 當(dāng)連接字符串中僅提供單個(gè)主機(jī)時(shí)。由 默認(rèn)情況下,在連接字符串中提供單個(gè)成員將 建立直接連接或發(fā)現(xiàn)其他成員 取決于 URI 選項(xiàng)是否 分別被省略或存在。指定 false 強(qiáng)制 發(fā)現(xiàn)發(fā)生(如果省略) 或指定 true 以強(qiáng)制直接連接(如果存在)。"replicaSet""replicaSet""replicaSet"

gssapiServiceName字符串

連接到 Kerberized MongoDB 時(shí)設(shè)置 Kerberos 服務(wù)名稱 實(shí)例。此值必須與 MongoDB 上設(shè)置的服務(wù)名稱匹配 實(shí)例(即 ? saslServiceName 服務(wù)器參數(shù))。默認(rèn)值為 。"mongodb"

此選項(xiàng)是 URI 選項(xiàng)屬性的已棄用別名。"SERVICE_NAME""authMechanismProperties"

心跳頻率MS國際

指定驅(qū)動(dòng)程序檢查之間的間隔(以毫秒為單位) MongoDB 拓?fù)?,從上次檢查的末尾開始計(jì)數(shù) 直到下一個(gè)開始。默認(rèn)值為 60,000 毫秒。

根據(jù) ? 服務(wù)器發(fā)現(xiàn)和監(jiān)視規(guī)范, 此值不能小于 500 毫秒。

雜志布爾

對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。如果為 true,則寫入將 需要 MongoDB 確認(rèn)操作已 寫給日記。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。journal

負(fù)載平衡布爾

指定驅(qū)動(dòng)程序是否連接到 MongoDB 集群 通過負(fù)載均衡器。如果為 true,則驅(qū)動(dòng)程序只能連接到 單個(gè)主機(jī)(由連接字符串或 SRV 指定 lookup),URI 選項(xiàng) 不能為 true,并且 URI 選項(xiàng) 必須省略。默認(rèn)值為 false。"directConnection""replicaSet"

localThresholdMS國際

用于選擇的延遲窗口的大?。ㄒ院撩霝閱挝唬?多個(gè)合適的 MongoDB 實(shí)例,同時(shí)解析讀取 偏好。默認(rèn)值為 15 毫秒。

maxStalenessSeconds國際

對(duì)應(yīng)于讀取首選項(xiàng)的 .以秒為單位指定如何 在客戶端停止使用它進(jìn)行讀取之前,輔助數(shù)據(jù)庫可能會(huì)過時(shí) 操作。默認(rèn)情況下,沒有最大過時(shí)和客戶端 在選擇將 讀取操作。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadPreference。"maxStalenessSeconds"

如果指定,則最大過時(shí)性必須是有符號(hào)的 32 位整數(shù) 大于或等于 MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS(即 90 秒)。

密碼字符串正在進(jìn)行身份驗(yàn)證的用戶的密碼。此選項(xiàng)很有用 如果密碼包含特殊字符,否則會(huì) 需要對(duì)連接 URI 進(jìn)行 URL 編碼。
readConcernLevel字符串對(duì)應(yīng)于讀取關(guān)注點(diǎn)的參數(shù)。指定讀取隔離級(jí)別。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadConcern。level
readPreference字符串

對(duì)應(yīng)于讀取首選項(xiàng)的參數(shù)。默認(rèn)值為 。詳情請(qǐng)見 請(qǐng)參閱 MongoDB\Driver\ReadPreference。mode"primary"

readPreference標(biāo)簽數(shù)組

對(duì)應(yīng)于讀取首選項(xiàng)的參數(shù)。標(biāo)記集允許您將讀取操作定位到特定的 副本集的成員。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\ReadPreference。tagSets

注意: 如果未在 URI 字符串中指定,則此選項(xiàng)表示為 與 MongoDB\Driver\ReadPreference::__construct() 所需的格式一致的數(shù)組。

replicaSet字符串

指定副本集的名稱。

retryReads布爾

指定驅(qū)動(dòng)程序是否應(yīng)自動(dòng)重試 某些由于暫時(shí)性網(wǎng)絡(luò)錯(cuò)誤而失敗的讀取操作 或副本集選舉。此功能需要 MongoDB 3.6+。 默認(rèn)值為 true。

有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 可重試讀取規(guī)范。

retryWrites的布爾

指定驅(qū)動(dòng)程序是否應(yīng)自動(dòng)重試 某些由于暫時(shí)性網(wǎng)絡(luò)錯(cuò)誤而失敗的寫入操作 或副本集選舉。此功能需要 MongoDB 3.6+。 默認(rèn)值為 true。

有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 可重試寫入。

安全布爾

如果為 true,則指定默認(rèn)寫入 關(guān)注的參數(shù)。如果為 false,則指定。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。1w0

此選項(xiàng)已棄用,不應(yīng)使用。

服務(wù)器選擇超時(shí)MS國際

指定阻止服務(wù)器選擇的時(shí)間(以毫秒為單位) 在拋出異常之前。默認(rèn)值為 30,000 毫秒。

serverSelectionTryOnce布爾

如果為 true,則指示驅(qū)動(dòng)程序掃描 MongoDB 部署 服務(wù)器選擇失敗后正好一次,然后選擇 服務(wù)器或引發(fā)錯(cuò)誤。如果為 false,驅(qū)動(dòng)程序會(huì)阻止 搜索高達(dá)該值的服務(wù)器。默認(rèn)值為 true。"serverSelectionTimeoutMS"

套接字檢查間隔MS國際

如果最近沒有使用插座,驅(qū)動(dòng)程序必須通過 一個(gè)命令,然后再將其用于任何 操作。默認(rèn)值為 5,000 毫秒。hello

套接字超時(shí)MS國際

嘗試在套接字上發(fā)送或接收的時(shí)間(以毫秒為單位) 在超時(shí)之前。默認(rèn)值為 300,000 毫秒(即 5 毫秒 分鐘)。

srvMax主機(jī)國際

最初隨機(jī)選擇的最大 SRV 結(jié)果數(shù) 填充種子列表,或者在 SRV 輪詢期間將新主機(jī)添加到 拓?fù)?。默認(rèn)值為(即無最大值)。0

srvServiceName字符串

用于在初始 DNS 種子列表中查找 SRV 的服務(wù)名稱 發(fā)現(xiàn)和 SRV 輪詢。默認(rèn)值為 。"mongodb"

SSL公司布爾

如果為 true,則啟動(dòng)與 TLS/SSL 的連接。默認(rèn)值為 false。

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tls"

TLS的布爾

如果為 true,則啟動(dòng)與 TLS/SSL 的連接。默認(rèn)值為 false。

tlsAllowInvalidCertificates布爾

指定驅(qū)動(dòng)程序是否應(yīng)在服務(wù)器的 TLS 證書無效。默認(rèn)值為 false。

警告

禁用證書驗(yàn)證會(huì)造成漏洞。

TLSALOVinvaldhosames布爾

指定驅(qū)動(dòng)程序在出現(xiàn) 服務(wù)器的主機(jī)名與指定的主機(jī)名不匹配 TLS 證書。默認(rèn)值為 false

警告

禁用證書驗(yàn)證會(huì)造成漏洞。允許 無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序遭受 ? 中間人攻擊。

tlsCAFile字符串

包含單個(gè)或捆綁證書的文件路徑 建立 TLS 連接時(shí)被視為受信任的機(jī)構(gòu)。 默認(rèn)情況下將使用系統(tǒng)證書存儲(chǔ)。

tlsCertificateKeyFile字符串

客戶端證書文件或客戶端私鑰文件的路徑; 如果兩者都需要,則文件應(yīng)為 級(jí) 聯(lián)。

tlsCertificateKeyFilePassword字符串

用于解密客戶端私鑰的密碼(即 URI 選項(xiàng)) 用于 TLS 連接。"tlsCertificateKeyFile"

tlsDisableCertificateRevocationCheck布爾

如果為 true,驅(qū)動(dòng)程序?qū)⒉粫?huì)嘗試檢查證書 吊銷狀態(tài)(例如 OCSP、CRL)。默認(rèn)值為 false。

tlsDisableOCSPEndpointCheck布爾

如果為 true,驅(qū)動(dòng)程序?qū)⒉粫?huì)嘗試聯(lián)系 OCSP 響應(yīng)程序 如果需要,則使用端點(diǎn)(即未裝訂 OCSP 響應(yīng))。違約 設(shè)置為 false。

tls不安全布爾

盡可能放寬 TLS 約束。指定 true 此選項(xiàng)與為 URI 和 URI 選項(xiàng)指定 true 的效果相同。違約 設(shè)置為 false"tlsAllowInvalidCertificates""tlsAllowInvalidHostnames"

警告

禁用證書驗(yàn)證會(huì)造成漏洞。允許 無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序遭受 ? 中間人攻擊。

用戶名字符串正在進(jìn)行身份驗(yàn)證的用戶的用戶名。此選項(xiàng)很有用 如果用戶名包含特殊字符,否則會(huì) 需要對(duì)連接 URI 進(jìn)行 URL 編碼。
整數(shù)|字符串

對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。w

w超時(shí)MS整數(shù)|字符串

對(duì)應(yīng)于默認(rèn)寫入關(guān)注點(diǎn)的參數(shù)。指定時(shí)間限制, 以毫秒為單位,用于寫入問題。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB\Driver\WriteConcern。wtimeout

如果指定,則必須是有符號(hào)的 32 位 整數(shù)大于或等于零。wTimeoutMS

zlibCompressionLevel國際

指定用于 zlib 壓縮器的壓縮級(jí)別。這 如果 URI 選項(xiàng)。有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 驅(qū)動(dòng)程序壓縮規(guī)范。zlib"compressors"

driverOptions
driver選項(xiàng)
選擇類型描述
Allo_invalid_hostname布爾

如果為 true,則禁用主機(jī)名驗(yàn)證。默認(rèn)值為 false。

允許無效的主機(jī)名可能會(huì)使驅(qū)動(dòng)程序面臨 ? 中間人攻擊。

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tlsAllowInvalidHostnames"

自動(dòng)加密數(shù)組

提供用于啟用自動(dòng)客戶端字段級(jí)別的選項(xiàng) 加密。

注意

自動(dòng)加密是一項(xiàng)僅限企業(yè)的功能,僅 適用于集合上的操作。自動(dòng)加密不是 支持對(duì)數(shù)據(jù)庫或視圖的操作,以及 不被繞過將導(dǎo)致錯(cuò)誤(請(qǐng)參閱 ? libmongocrypt:自動(dòng)加密允許列表)。繞過自動(dòng)加密 對(duì)于所有操作,設(shè)置為 truebypassAutoEncryption

自動(dòng)加密要求經(jīng)過身份驗(yàn)證的用戶具有 ? listCollections 權(quán)限操作。

顯式加密/解密和自動(dòng)解密是 社區(qū)功能。當(dāng)為 true 時(shí),驅(qū)動(dòng)程序仍可以自動(dòng)解密。bypassAutoEncryption

支持以下選項(xiàng):

自動(dòng)加密選項(xiàng)
選擇類型描述
keyVaultClientMongoDB\驅(qū)動(dòng)程序\管理器用于將數(shù)據(jù)密鑰查詢路由到單獨(dú)的 MongoDB 集群的管理器。默認(rèn)情況下,使用當(dāng)前 Manager 和集群。
keyVaultNamespace字符串一個(gè)完全限定的命名空間(例如 ),表示包含用于加密和解密的所有數(shù)據(jù)密鑰的集合。此選項(xiàng)是必需的。"databaseName.collectionName"
kms提供程序數(shù)組

包含一個(gè)或多個(gè) KMS 提供程序的配置的文檔,這些提供程序用于加密數(shù)據(jù)密鑰。支持的提供程序包括 、 、 、 和 ,并且必須至少指定一個(gè)。"aws""azure""gcp""kmip""local"

如果為 、 或 驅(qū)動(dòng)程序指定了空文檔 將嘗試使用 ? 自動(dòng)憑據(jù)配置提供程序。"aws""azure""gcp"

格式如下:"aws"

aws: {
    accessKeyId: <string>,
    secretAccessKey: <string>,
    sessionToken: <optional string>
}

格式如下:"azure"

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <optional string> // Defaults to "login.microsoftonline.com"
}

格式如下:"gcp"

gcp: {
    email: <string>,
    privateKey: <base64 string>|<MongoDB\BSON\Binary>,
    endpoint: <optional string> // Defaults to "oauth2.googleapis.com"
}

格式如下:"kmip"

kmip: {
    endpoint: <string>
}

格式如下:"local"

local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tls選項(xiàng)數(shù)組

包含一個(gè)或多個(gè) KMS 提供商的 TLS 配置的文檔。支持的提供程序包括 、 、 和 。所有提供程序都支持以下選項(xiàng):"aws""azure""gcp""kmip"

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}
架構(gòu)映射數(shù)組|對(duì)象

集合命名空間到本地 JSON 架構(gòu)的映射。這是 用于配置自動(dòng)加密。有關(guān)詳細(xì)信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 自動(dòng)加密規(guī)則。這是一個(gè)錯(cuò)誤 在 和 中指定一個(gè)集合。schemaMapencryptedFieldsMap

注意: 提供 schemaMap 提供更多 安全性而不是依賴從 服務(wù)器。它可以防止惡意服務(wù)器宣傳 false JSON 架構(gòu),這可能會(huì)誘騙客戶端發(fā)送 應(yīng)加密的未加密數(shù)據(jù)。

注意: 僅在 schemaMap 中提供的模式 適用于配置客戶端自動(dòng)加密 加密。JSON 架構(gòu)中的其他驗(yàn)證規(guī)則將 不由驅(qū)動(dòng)程序強(qiáng)制執(zhí)行,將導(dǎo)致錯(cuò)誤。

繞過自動(dòng)加密布爾如果為 true,則不會(huì)生成 自然而然。這用于禁用自動(dòng)加密。 默認(rèn)值為 false。mongocryptd
繞過QueryAnalysis布爾

如果為 true,則對(duì)傳出命令的自動(dòng)分析將是 禁用,不會(huì) 自動(dòng)生成。這啟用了顯式 用于查詢索引字段的加密,而無需 企業(yè)許可的庫或進(jìn)程。默認(rèn)值為 false。mongocryptdcrypt_sharedmongocryptd

encryptedFieldsMap數(shù)組|對(duì)象

集合命名空間到文檔的映射。這用于 配置可查詢加密。有關(guān)更多信息,請(qǐng)參閱 MongoDB 手冊(cè)中的 ? 字段加密和可查詢性。這是一個(gè)錯(cuò)誤 在 和 中指定一個(gè)集合。encryptedFieldsencryptedFieldsMapschemaMap

注意: 提供 encryptedFieldsMap 提供 比依賴從服務(wù)器獲取的 encryptedFields 更安全。 它可以防止惡意服務(wù)器通告虛假的 encryptedFields

額外選項(xiàng)數(shù)組

與過程有關(guān)。以下選項(xiàng) 支持:extraOptionsmongocryptd

  • mongocryptdURI (string):用于連接到現(xiàn)有進(jìn)程的 URI。默認(rèn)值為 。mongocryptd"mongodb://localhost:27020"
  • mongocryptdBypassSpawn (bool):如果為 true,則阻止驅(qū)動(dòng)程序生成。默認(rèn)值為 false。mongocryptd
  • mongocryptdSpawnPath (string):搜索二進(jìn)制文件的絕對(duì)路徑。默認(rèn)為空字符串并查詢系統(tǒng)路徑。mongocryptd
  • mongocryptdSpawnArgs (array):生成時(shí)要傳遞到的字符串參數(shù)數(shù)組。默認(rèn)值為 。mongocryptd["--idleShutdownTimeoutSecs=60"]
  • cryptSharedLibPath (string):共享庫的絕對(duì)路徑。默認(rèn)為空字符串并查詢系統(tǒng)路徑。crypt_shared
  • cryptSharedLibRequired (bool):如果為 true,則要求驅(qū)動(dòng)程序加載 。默認(rèn)值為 falsecrypt_shared

有關(guān)詳細(xì)信息,請(qǐng)參閱 ? 客戶端加密規(guī)范。

注意: 自動(dòng)加密是企業(yè)獨(dú)有的功能,只有 適用于集合上的操作。自動(dòng)加密不是 支持對(duì)數(shù)據(jù)庫或視圖的操作,以及 不繞過將導(dǎo)致錯(cuò)誤。繞過自動(dòng) 所有操作的加密,在 autoEncryption 中設(shè)置 bypassAutoEncryption=true。有關(guān)的更多信息 允許的操作,請(qǐng)參閱 ? 客戶端加密規(guī)范。

ca_dir字符串

正確哈希證書目錄的路徑。系統(tǒng) 默認(rèn)情況下將使用證書存儲(chǔ)。

ca_file字符串

包含單個(gè)或捆綁證書的文件路徑 建立 TLS 連接時(shí)被視為受信任的機(jī)構(gòu)。 默認(rèn)情況下將使用系統(tǒng)證書存儲(chǔ)。

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tlsCAFile"

上下文資源

要用作的 SSL 上下文選項(xiàng) 如果驅(qū)動(dòng)程序選項(xiàng)或其等效的 URI 選項(xiàng)(如果有)則回退, 未指定。請(qǐng)注意,驅(qū)動(dòng)程序不會(huì)咨詢默認(rèn)值 流上下文(即 stream_context_get_default())。以下 支持上下文選項(xiàng):

SSL 上下文選項(xiàng)回退
驅(qū)動(dòng)程序選項(xiàng)上下文選項(xiàng)(回退)
ca_dir卡帕斯
ca_filecafile(卡菲爾酒店)
pem_filelocal_cert
pem_pwd密碼
weak_cert_validationallow_self_signed

支持此選項(xiàng)以實(shí)現(xiàn)向后兼容性,但應(yīng) 被視為已棄用。

crl_file字符串證書吊銷列表文件的路徑。
disableClientPersistence布爾

如果為 true,則此管理器將使用一個(gè)新的 libmongoc 客戶端,該客戶端將 不能持久化或與其他 Manager 對(duì)象共享。當(dāng)這個(gè) Manager 對(duì)象被釋放,其客戶端將被銷毀,任何 連接將被關(guān)閉。默認(rèn)值為 false

注意: 通常不建議禁用客戶端持久性。

司機(jī)數(shù)組

允許自定義驅(qū)動(dòng)程序?qū)⒆约旱脑獢?shù)據(jù)追加到服務(wù)器 握手。默認(rèn)情況下,驅(qū)動(dòng)程序會(huì)提交自己的名稱、版本和 平臺(tái)(i.e. PHP版本)在握手中。自定義驅(qū)動(dòng)程序可以 指定此數(shù)組的 、 和 鍵的字符串,這些字符串將是 附加到握手文檔中的相應(yīng)字段。"name""version""platform"

注意: 握手信息限制為 512 字節(jié)。司機(jī)會(huì) 截?cái)辔帐謹(jǐn)?shù)據(jù)以適合此 512 字節(jié)字符串。司機(jī) 鼓勵(lì) ODM 保持自己的元數(shù)據(jù)簡(jiǎn)潔。

pem_file字符串

用于客戶端身份驗(yàn)證的 PEM 編碼證書的路徑。

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tlsCertificateKeyFile"

pem_pwd字符串

PEM 編碼證書的密碼(如果適用)。

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tlsCertificateKeyFilePassword"

服務(wù)器ApiMongoDB\驅(qū)動(dòng)程序\ServerApi

此選項(xiàng)用于聲明管理器的服務(wù)器 API 版本。 如果省略,則不會(huì)聲明 API 版本。

weak_cert_validation布爾

如果為 true,則禁用證書驗(yàn)證。默認(rèn)值為 false

此選項(xiàng)是 URI 選項(xiàng)的已棄用別名。"tlsAllowInvalidCertificates"

錯(cuò)誤/異常 

  • Throws MongoDB\Driver\Exception\InvalidArgumentException on argument parsing errors.
  • Throws MongoDB\Driver\Exception\RuntimeException if the format is invaliduri

更新日志 

版本說明
PECL mongodb 1.16.0

用于客戶端加密的 AWS KMS 提供商現(xiàn)在接受一個(gè)選項(xiàng),該選項(xiàng)可用于 使用臨時(shí) AWS 憑證進(jìn)行身份驗(yàn)證。"sessionToken"

添加到驅(qū)動(dòng)程序選項(xiàng)的字段中。"tlsDisableOCSPEndpointCheck""tlsOptions""autoEncryption"

如果為 或 KMS 提供程序指定了空文檔,驅(qū)動(dòng)程序?qū)L試 使用 ? 自動(dòng)憑據(jù)配置提供程序。"azure""gcp"

PECL mongodb 1.15.0

如果為 KMS 指定了空文檔 provider,驅(qū)動(dòng)程序?qū)L試使用 ? 自動(dòng)憑據(jù)配置提供程序。"aws"

PECL mongodb 1.14.0

添加了 和 自動(dòng)加密選項(xiàng)。 與以下內(nèi)容相關(guān)的其他選項(xiàng)包括 現(xiàn)在支持自動(dòng)加密 選擇。"bypassQueryAnalysis""encryptedFieldsMap"crypt_shared"extraOptions"

PECL mongodb 1.13.0

添加了 和 URI 選項(xiàng)。"srvMaxHosts""srvServiceName"

PECL mongodb 1.12.0

現(xiàn)在支持將 KMIP 作為 KMS 提供商進(jìn)行客戶端加密和 可以在驅(qū)動(dòng)程序選項(xiàng)的字段中配置。此外,TLS 現(xiàn)在可以在驅(qū)動(dòng)程序選項(xiàng)字段中配置 KMS 提供商的選項(xiàng)。"kmsProviders""autoEncryption""tlsOptions""autoEncryption"

PECL mongodb 1.11.0

添加了 URI 選項(xiàng)。"loadBalanced"

PECL mongodb 1.10.0

添加了驅(qū)動(dòng)程序選項(xiàng)。"disableClientPersistence"

現(xiàn)在支持將 Azure 和 GCP 作為客戶端的 KMS 提供程序 加密,并且可以在驅(qū)動(dòng)程序選項(xiàng)的字段中配置。Base64 編碼 字符串現(xiàn)在被接受為 MongoDB\BSON\Binary 的替代選項(xiàng)。"kmsProviders""autoEncryption""kmsProviders"

PECL mongodb 1.8.0

添加了 、 和 URI 選項(xiàng)。"directConnection""tlsDisableCertificateRevocationCheck""tlsDisableOCSPEndpointCheck"

添加了驅(qū)動(dòng)程序選項(xiàng)。"driver"

PECL mongodb 1.7.0

添加了驅(qū)動(dòng)程序選項(xiàng)。"autoEncryption"

通過參數(shù)指定任何 SSL 或 TLS 選項(xiàng)現(xiàn)在將隱式啟用 TLS,就像 相應(yīng)的 URI 選項(xiàng)。driverOptions

PECL mongodb 1.6.0

添加了 、 、 、 、 、 、 和 URI 選項(xiàng)。"retryReads""tls""tlsAllowInvalidCertificates""tlsAllowInvalidHostnames""tlsCAFile""tlsCertificateKeyFile""tlsCertificateKeyFilePassword""tlsInsecure"

URI 選項(xiàng)默認(rèn)為 true。"retryWrites"

現(xiàn)在,通過連接字符串或參數(shù)指定任何 SSL 或 TLS URI 選項(xiàng)將隱式啟用 TLS,除非 或 為 false。 TLS 未隱式啟用 參數(shù),該參數(shù)不變 從以前的版本。uriOptionsssltlsdriverOptions

PECL mongodb 1.5.0

"wtimeoutMS"現(xiàn)在始終經(jīng)過驗(yàn)證并應(yīng)用于 寫入關(guān)注點(diǎn)。以前,如果 <= 1,則忽略該選項(xiàng),因?yàn)槌瑫r(shí)僅適用于 復(fù)制。"w"

PECL mongodb 1.4.0

添加了 、 和 URI 選項(xiàng)。"compressors""retryWrites""zlibCompressionLevel"

PECL mongodb 1.3.0

參數(shù)現(xiàn)在接受和選項(xiàng)。以前,這些 選項(xiàng)僅在參數(shù)中受支持。uriOptions"authMechanism""authMechanismProperties"uri

PECL mongodb 1.2.0

該參數(shù)默認(rèn)為 。默認(rèn)端口仍為 。uri"mongodb://127.0.0.1/"27017

添加了 URI 選項(xiàng)。"appname"

添加了 、 、 、 、 、 和 驅(qū)動(dòng)程序選項(xiàng)。"allow_invalid_hostname""ca_file""ca_dir""clr_file""pem_file""pem_pwd""weak_cert_validation"

PHP Streams API 不再用于套接字通信。URI 選項(xiàng)現(xiàn)在默認(rèn)為 10 秒,而不是以前版本中的default_socket_timeout。此外,驅(qū)動(dòng)程序不再通過驅(qū)動(dòng)程序選項(xiàng)支持所有 SSL 上下文選項(xiàng)。"connectTimeoutMS""context"

PECL mongodb 1.1.0

該參數(shù)是可選的,默認(rèn)為 。uri"mongodb://localhost:27017/"

示例 

示例 #1 MongoDB\Driver\Manager::__construct() 基本示例

連接到獨(dú)立的 MongoDB 節(jié)點(diǎn):

<?php

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

?>

通過 Unix 域套接字連接到獨(dú)立的 MongoDB 節(jié)點(diǎn)。套接字 path 可能包含特殊字符,例如斜杠,并且應(yīng)該進(jìn)行編碼 使用 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");

?>

連接到分片集群(即一個(gè)或多個(gè) mongos 實(shí)例):

<?php

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

?>

使用特定用戶和數(shù)據(jù)庫的身份驗(yàn)證憑據(jù)連接到 MongoDB:

<?php

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

?>

使用特定身份驗(yàn)證憑據(jù)連接到MongoDB user 和 database,其中用戶名或密碼包含 字符(例如 、 、 )。在以下示例中,密碼字符串已手動(dòng)轉(zhuǎn)義;但是,rawurlencode() 也可用于轉(zhuǎn)義 URI 組件 可能包含特殊字符。@:%myp@ss:w%rd

<?php

$manager = new MongoDB\Driver\Manager("mongodb://myusername:myp%40ss%3Aw%25rd@example.com/?authSource=databaseName");

?>

使用 X509 身份驗(yàn)證連接到 MongoDB:

<?php

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

參見 

  • 連接處理和持久性
  • ? MongoDB 連接字符串格式


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)