PHP 8.4.2 Released!

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__constructCrée un nouveau Manager MongoDB

Description

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

Construit un nouvel objet MongoDB\Driver\Manager avec les options spécifiées.

Note: Avec la » Spécification de découverte et de surveillance du serveur, ce constructeur n'effectue pas d'E/S. Les connexions seront initialisées à la demande, lors de l'exécution de la première opération.

Note: Lorsque des options d'URI SSL ou TLS sont spécifiées via la chaîne de connexion ou le paramètre uriOptions, l'extension activera implicitement TLS pour ses connexions. Pour éviter cela, désactivez explicitement l'option tls ou ne spécifiez aucune option TLS.

Note: Sur les plate-formes Unix, l'extension MongoDB est sensible aux scripts qui utilisent l'appel système fork() sans pour autant appeler exec(). Vous ne devez pas ré-utliser des instances MongoDB\Driver\Manager dans une processus fils issue d'un fork.

Liste de paramètres

uri

Une URI de connexion » mongodb://:

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

Pour les détails sur les options d'URI prises en charge, voir » Options de chaîne de connexion dans le manuel MongoDB. » Options de pool de connexions ne sont pas prises en charge, car l'extension n'implémente pas de pools de connexions.

Par défaut, "mongodb://127.0.0.1:27017" si non spécifié.

L'uri est une URL, donc tous les caractères spéciaux dans ses composants doivent être encodés en URL selon la » RFC 3986. Cela est particulièrement pertinent pour le nom d'utilisateur et le mot de passe, qui peuvent souvent inclure des caractères spéciaux tels que @, : ou %. Lors de la connexion via un socket de domaine Unix, le chemin du socket peut contenir des caractères spéciaux tels que des barres obliques et doit être encodé. La fonction rawurlencode() peut être utilisée pour encoder les parties constitutives de l'URI.

Le composant defaultAuthDb peut être utilisé pour spécifier la base de données associée aux informations d'identification de l'utilisateur; cependant, l'option d'URI authSource aura la priorité si elle est spécifiée. Si ni defaultAuthDb ni authSource ne sont spécifiés, la base de données admin sera utilisée par défaut. Le composant defaultAuthDb n'a aucun effet en l'absence d'informations d'identification utilisateur.

uriOptions

Options supplémentaires » de chaîne de connexion, qui écraseront toute option portant le même nom dans le paramètre uri.

uriOptions
Option Type Description
appname string

MongoDB 3.4+ a la capacité d'annoter les connexions avec des métadonnées fournies par le client connecté. Ces métadonnées sont incluses dans les journaux du serveur lors de l'établissement d'une connexion et également enregistrées dans les journaux de requêtes lentes lorsque le profilage de la base de données est activé.

Cette option peut être utilisée pour spécifier un nom d'application, qui sera inclus dans les métadonnées. La valeur ne peut pas dépasser 128 caractères de longueur.

authMechanism string

Le mécanisme d'authentification que MongoDB utilisera pour authentifier la connexion. Pour plus de détails et une liste des valeurs prises en charge, voir » Options d'authentification dans le manuel MongoDB.

authMechanismProperties array

Les propriétés spécifiques au mécanisme d'authentification sélectionné. Pour plus de détails et une liste des propriétés prises en charge, voir la » Spécification d'authentification du pilote.

Note: Lorsque non spécifiée dans la chaîne d'URI, cette option est exprimée comme un tableau de paires clé/valeur. Les clés et valeurs de ce tableau doivent être des chaînes.

authSource string

Le nom de la base de données associée aux informations d'identification de l'utilisateur. Par défaut au composant de la base de données de l'URI de connexion, ou à la base de données admin si les deux sont non spécifiés.

Pour les mécanismes d'authentification qui ne prennent pas en charge la notion de base de données (e.g. GSSAPI), cela devrait être "$external".

canonicalizeHostname bool

Si true, le pilote résoudra le nom d'hôte réel pour l'adresse IP du serveur avant de s'authentifier via SASL. Certaines couches GSSAPI sous-jacentes le font déjà, mais la fonctionnalité peut être désactivée dans leur configuration (e.g. krb.conf). Par défaut à false.

Cette option est un alias obsolète pour la propriété "CANONICALIZE_HOST_NAME" de l'option d'URI "authMechanismProperties".

compressors string

Un liste priorisée et délimitée par des virgules de compresseurs que le client souhaite utiliser. Les messages ne sont compressés que si le client et le serveur partagent des compresseurs en commun, et le compresseur utilisé dans chaque direction dépendra de la configuration individuelle du serveur ou du pilote. Voir la » Spécification de compression de pilote pour plus d'informations.

connectTimeoutMS int

Le temps en millisecondes pour tenter une connexion avant d'expirer. Par défaut à 10 000 millisecondes.

directConnection bool

Cette option peut être utilisée pour contrôler le comportement de découverte de l'ensemble de réplicas lorsqu'un seul hôte est fourni dans la chaîne de connexion. Par défaut, fournir un seul membre dans la chaîne de connexion établira une connexion directe ou découvrira des membres supplémentaires selon que l'option d'URI "replicaSet" est omise ou présente, respectivement. Spécifiez false pour forcer la découverte à se produire (si "replicaSet" est omis) ou spécifiez true pour forcer une connexion directe (si "replicaSet" est présent).

gssapiServiceName string

Définit le nom du service Kerberos lors de la connexion à des instances MongoDB sécurisées par Kerberos. Cette valeur doit correspondre au nom du service défini sur les instances MongoDB (i.e. » saslServiceName paramètre du serveur). Par défaut à "mongodb".

Cette option est décpréciée et devrait être remplacée par la propriété "SERVICE_NAME" de l'option d'URI "authMechanismProperties".

heartbeatFrequencyMS int

Spécifie l'intervalle en millisecondes entre les vérifications de la topologie MongoDB, compté de la fin de la vérification précédente jusqu'au début de la suivante. Par défaut à 60 000 millisecondes.

Pour la » Spécification de découverte et de surveillance du serveur, cette valeur ne peut pas être inférieure à 500 millisecondes.

journal bool

Correspond à l'option journal du write concern par défaut. Si true, les écritures nécessiteront un accusé de réception de MongoDB indiquant que l'opération a été écrite dans le journal. Pour plus de détails, voir MongoDB\Driver\WriteConcern.

loadBalanced bool

Spécife si le pilote se connecte à un cluster MongoDB via un équilibreur de charge. Si true, le pilote ne peut se connecter qu'à un seul hôte (spécifié par la chaîne de connexion ou la recherche SRV), l'option d'URI "directConnection" ne peut pas être true, et l'option d'URI "replicaSet" doit être omise. Par défaut à false.

localThresholdMS int

La taille en millisecondes de la fenêtre de latence pour la sélection parmi plusieurs instances MongoDB appropriées lors de la résolution d'une préférence de lecture. Par défaut à 15 millisecondes.

maxStalenessSeconds int

Correspond à l'option maxStalenessSeconds de la préférence de lecture. Spécifie, en secondes, la durée de validité maximale d'une instance secondaire avant que le client ne cesse de l'utiliser pour les opérations de lecture. Par défaut, il n'y a pas de durée de validité maximale et les clients ne tiendront pas compte du délai d'une instance secondaire lors du choix de la direction d'une opération de lecture. Pour plus de détails, voir MongoDB\Driver\ReadPreference.

Si spécifié, la durée de validité maximale doit être un entier signé de 32 bits supérieur ou égal à MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (par exemple 90 secondes).

password string Le mot de passe de l'utilisateur en cours d'authentification. Cette option est utile si le mot de passe contient des caractères spéciaux, qui devraient autrement être encodés en URL pour l'URI de connexion.
readConcernLevel string Correspond à l'option level de la préférence de lecture. Spécifie le niveau d'isolation de lecture. Pour plus de détails, voir MongoDB\Driver\ReadConcern.
readPreference string

Correspond à l'option mode de la préférence de lecture. Par défaut à "primary". Pour plus de détails, voir MongoDB\Driver\ReadPreference.

readPreferenceTags array

Correspond à l'option tagSets de la préférence de lecture. Les ensembles de balises permettent de cibler les opérations de lecture sur des membres spécifiques d'un ensemble de réplicas.Pour plus de détails, voir MongoDB\Driver\ReadPreference.

Note: Lorsque non spécifiée dans la chaîne d'URI, cette option est exprimée comme un tableau conforme au format attendu par MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Spécifie le nom de l'ensemble de réplicas.

retryReads bool

Spécife si le pilote doit automatiquement réessayer certaines opérations de lecture qui échouent en raison d'erreurs réseau transitoires ou d'élections d'ensemble de réplicas. Cette fonctionnalité nécessite MongoDB 3.6+. Par défaut à true.

Voir la » Spécification de lecture réessayable pour plus d'informations.

retryWrites bool

Spécife si le pilote doit automatiquement réessayer certaines opérations d'écriture qui échouent en raison d'erreurs réseau transitoires ou d'élections d'ensemble de réplicas. Cette fonctionnalité nécessite MongoDB 3.6+. Par défaut à true.

Voir » Écritures réessayables dans le manuel MongoDB pour plus d'informations.

safe bool

Si true, spécifie 1 pour le paramètre w du write concern par défaut. Si false, 0 est spécifié. Pour plus de détails, voir MongoDB\Driver\WriteConcern.

Cette option est obsolète et ne devrait pas être utilisée.

serverSelectionTimeoutMS int

Spécifie combien de temps en millisecondes bloquer pour la sélection du serveur avant de lancer une exception. Par défaut à 30 000 millisecondes.

serverSelectionTryOnce bool

Lorsque true, indique au pilote de scanner le déploiement MongoDB exactement une fois après un échec de sélection du serveur, puis de sélectionner un serveur ou de lancer une exception. Lorsque false, le pilote bloque et recherche un serveur jusqu'à la valeur de "serverSelectionTimeoutMS". Par défaut à true.

socketCheckIntervalMS int

Si un socket n'a pas été utilisé récemment, le pilote doit le vérifier via une commande hello avant de l'utiliser pour toute opération. Par défaut à 5 000 millisecondes.

socketTimeoutMS int

Le temps en millisecondes pour tenter un envoi ou une réception sur un socket avant d'expirer. Par défaut à 300 000 millisecondes (i.e. cinq minutes).

srvMaxHosts int

Le nombre maximum de résultats SRV à sélectionner aléatoirement lors de la première population de la liste de semences ou, lors du sondage SRV, l'ajout de nouveaux hôtes à la topologie. Par défaut à 0 (i.e. pas de maximum).

srvServiceName string

Le nom de service à utiliser pour la recherche SRV dans la liste de semences initiale et le sondage SRV. Par défaut à "mongodb".

ssl bool

Initialise la connexion avec TLS/SSL si true. Par défaut à false.

Cette option est un alias obsolète pour l'option d'URI "tls".

tls bool

Initialise la connexion avec TLS/SSL si true. Par défaut à false.

tlsAllowInvalidCertificates bool

Spécifie si le pilote doit générer une erreur lorsque le certificat TLS du serveur est invalide. Par défaut à false.

Avertissement

Désactiver la validation du certificat créant une vulnérabilité.

tlsAllowInvalidHostnames bool

Spécifie si le pilote doit générer une erreur lorsqu'il y a un désaccord entre le nom d'hôte du serveur et le nom d'hôte spécifié par le certificat TLS. Par défaut à false.

Avertissement

Désactive la validation du certificat créant une vulnérabilité. Autoriser les noms d'hôte invalides peut exposer le pilote à une » attaque de l'homme du milieu.

tlsCAFile string

Le chemin du fichier contenant un seul certificat ou un ensemble de certificats d'autorités à considérer comme fiables lors de l'établissement d'une connexion TLS. Le magasin de certificats système sera utilisé par défaut.

tlsCertificateKeyFile string

Le chemin du fichier de certificat client ou du fichier de clé privée client; dans le cas où les deux sont nécessaires, les fichiers doivent être concaténés.

tlsCertificateKeyFilePassword string

Le mot de passe pour décrypter la clé privée client (i.e. l'option d'URI "tlsCertificateKeyFile") à utiliser pour les connexions TLS.

tlsDisableCertificateRevocationCheck bool

Si true, le pilote n'essaiera pas de vérifier l'état de révocation du certificat (e.g. OCSP, CRL). Par défaut à false.

tlsDisableOCSPEndpointCheck bool

Si true, le pilote n'essaiera pas de contacter un point de terminaison de répondeur OCSP si nécessaire (i.e. une réponse OCSP n'est pas agrafée). Par défaut à false.

tlsInsecure bool

Détend les contraintes TLS autant que possible. Spécifier true pour que cette option ait le même effet que de spécifier true pour les options d'URI "tlsAllowInvalidCertificates" et "tlsAllowInvalidHostnames". Par défaut à false.

Avertissement

Désactive la validation du certificat créant une vulnérabilité. Autoriser les noms d'hôte invalides peut exposer le pilote à une » attaque de l'homme du milieu.

username string Le nom d'utilisateur de l'utilisateur en cours d'authentification. Cette option est utile si le nom d'utilisateur contient des caractères spéciaux, qui devraient autrement être encodés en URL pour l'URI de connexion.
w int|string

Correspond à l'option w du write concern par défaut. Pour plus de détails, voir MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Correspond à l'option wtimeout du write concern par défaut. Spécifie une limite de temps, en millisecondes, pour le write concern. Pour plus de détails, voir MongoDB\Driver\WriteConcern.

Si spécifié, wTimeoutMS doit être un entier signé de 32 bits supérieur ou égal à zéro.

zlibCompressionLevel int

Spécife le niveau de compression à utiliser pour le compresseur zlib. Cette option n'a aucun effet si zlib n'est pas inclus dans l'option d'URI "compressors". Voir la » Spécification de compression de pilote pour plus d'informations.

driverOptions

driverOptions
Option Type Description
allow_invalid_hostname bool

Désactive la validation du nom d'hôte si true. Par défaut à false.

Autorise les noms d'hôte invalides exposant le pilote à une » attaque de l'homme du milieu.

Cette option est un alias obsolète pour l'option d'URI "tlsAllowInvalidHostnames".

autoEncryption array

Apporte des options pour activer le chiffrement côté client au niveau des champs.

Note:

Le chiffrement automatique est une fonctionnalité d'entreprise qui ne s'applique qu'aux opérations sur une collection. Le chiffrement automatique n'est pas pris en charge pour les opérations sur une base de données ou une vue, et les opérations qui ne sont pas contournées entraîneront une erreur (voir » libmongocrypt: Le liste d'autorisation de chiffrement automatique). Pour contourner le chiffrement automatique pour toutes les opérations, définissez bypassAutoEncryption à true.

Le chiffrement automatique nécessite que l'utilisateur authentifié ait le privilège d'action » listCollections.

Le chiffrement explicite et automatique est une fonctionnalité de la communauté. Le pilote peut toujours décrypter automatiquement lorsque bypassAutoEncryption est true.

Les options suivantes sont prises en charge:

Options pour le chiffrement automatique
Option Type Description
keyVaultClient MongoDB\Driver\Manager Le Manager utilisé pour router les requêtes de clés de données à un cluster MongoDB différent. Par défaut, le Manager et cluster courant et utilisé.
keyVaultNamespace chaîne de caractères Un nom d'espace complètement qualifié (par exemple "databaseName.collectionName") dénotant la collection qui contient toutes les clés de données utilisé pour le chiffrement et déchiffrement. Cette option est requise.
kmsProviders tableau

Un document contenant la configuration d'un ou plusieurs fournisseurs KMS, qui sont utilisés pour chiffrer les clés de données. Les fournisseurs supporté sont "aws", "azure", "gcp" et "local", et au moins un doit être spécifié.

Si un document vide est spécifié pour "aws", "azure", ou "gcp", le pilote tentera de configurer le fournisseur en utilisant » Automatic Credentials.

Le format pour "aws" est le suivant :

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

Le format pour "azure" est le suivant :

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

}

Le format pour "gcp" est le suivant :

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

}

Le format pour "kmip" est le suivant :

kmip: {
    endpoint: <string>
}

Le format pour "local" est le suivant :

local: {
    // 96-byte master key used to encrypt/decrypt data keys
    key: <base64 string>|<MongoDB\BSON\Binary>
}
tlsOptions array

Un document contenant la configuration TLS d'un ou plusieurs fournisseurs KMS. Les fournisseurs supporté sont "aws", "azure", "gcp" et "kmip". Tous les fournisseurs supportent les options suivantes :

<provider>: {
    tlsCaFile: <optional string>,
    tlsCertificateKeyFile: <optional string>,
    tlsCertificateKeyFilePassword: <optional string>,
    tlsDisableOCSPEndpointCheck: <optional bool>
}
schemaMap array|object

Mappe les espaces de noms de collection à un schéma JSON local. Ceci est utilisé pour configurer le chiffrement automatique. Voir » Règles de chiffrement automatique dans le manuel MongoDB pour plus d'informations. Il est une erreur de spécifier une collection à la fois dans schemaMap et encryptedFieldsMap.

Note: Fournir un schemaMap fournit plus de sécurité que de se fier aux schémas JSON obtenus du serveur. Cela protège contre un serveur malveillant annonçant un faux schéma JSON, qui pourrait tromper le client en envoyant des données non chiffrées qui devraient être chiffrées.

Note: Les schémas fournis dans le schemaMap s'appliquent uniquement à la configuration du chiffrement automatique pour le chiffrement côté client. D'autres règles de validation dans le schéma JSON ne seront pas appliquées par le pilote et entraîneront une erreur.

bypassAutoEncryption bool Si true, mongocryptd ne sera pas lancé automatiquement. Ceci est utilisé pour désactiver le chiffrement automatique. Par défaut à false.
bypassQueryAnalysis bool

Si true, l'analyse automatique des commandes sortantes sera désactivée et mongocryptd ne sera pas lancé automatiquement. Cela permet le cas d'utilisation du chiffrement explicite pour interroger des champs indexés sans nécessiter la bibliothèque crypt_shared sous licence entreprise ou le processus mongocryptd. Par défaut à false.

encryptedFieldsMap array|object

Mappe les espaces de noms de collection à un document encryptedFields. Ceci est utilisé pour configurer le chiffrement interrogeable. Voir » Chiffrement de champ et interrogeabilité dans le manuel MongoDB pour plus d'informations. Il est une erreur de spécifier une collection à la fois dans encryptedFieldsMap et schemaMap.

Note: Fournir un encryptedFieldsMap fournit plus de sécurité que de se fier aux encryptedFields obtenus du serveur. Cela protège contre un serveur malveillant annonçant un faux encryptedFields.

extraOptions array

Le extraOptions se rapportent au processus mongocryptd. Les options suivantes sont prises en charge:

  • mongocryptdURI (string): URI pour se connecter à un processus mongocryptd existant. Par défaut à "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): Si true, empêche le pilote de lancer mongocryptd. Par défaut à false.
  • mongocryptdSpawnPath (string): Chemin absolu pour rechercher le binaire mongocryptd. Par défaut à une chaîne vide et consulte les chemins système.
  • mongocryptdSpawnArgs (array): Tableau d'arguments de chaîne à passer à mongocryptd lors du lancement. Par défaut à ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Chemin absolu vers la bibliothèque partagée crypt_shared. Par défaut à une chaîne vide et consulte les chemins système.
  • cryptSharedLibRequired (bool): Si true, exige que le pilote charge crypt_shared. Par défaut à false.

Voir la » Spécification de chiffrement côté client pour plus d'informations.

Note: Le chiffrement automatique est une fonctionnalité d'entreprise qui ne s'applique qu'aux opérations sur une collection. Le chiffrement automatique n'est pas pris en charge pour les opérations sur une base de données ou une vue, et les opérations qui ne sont pas contournées entraîneront une erreur. Pour contourner le chiffrement automatique pour toutes les opérations, définissez bypassAutoEncryption=true dans autoEncryption. Pour plus d'informations sur les opérations autorisées, voir la » Spécification de chiffrement côté client.

ca_dir string

Le chemin du répertoire de certificats correctement hachés. Le magasin de certificats système sera utilisé par défaut.

ca_file string

Le chemin du fichier avec un seul certificat ou un ensemble de certificats d'autorités à considérer comme fiables lors de l'établissement d'une connexion TLS. Le magasin de certificats système sera utilisé par défaut.

Cette option est un alias obsolète pour l'option d'URI "tlsCAFile".

context resource

Les options de contexte SSL à utiliser comme solutions de secours si une option de pilote ou son équivalent URI, le cas échéant, n'est pas spécifié. Notez que l'extension ne consulte pas le contexte de flux par défaut (i.e. stream_context_get_default()). Les options de contexte suivantes sont prises en charge:

Options de contexte SSL de secours
Option de Driver Option de Contexte (solution de secours)
ca_dir capath
ca_file cafile
pem_file local_cert
pem_pwd passphrase
weak_cert_validation allow_self_signed

Cette option est prise en charge pour des raisons de compatibilité ascendante, mais devrait être considérée comme obsolète.

crl_file string Le chemin du fichier de liste de révocation de certificat.
disableClientPersistence bool

Si true, ce Manager utilisera un nouveau client libmongoc, qui ne sera pas persisté ou partagé avec d'autres objets Manager. Lorsque cet objet Manager est libéré, son client sera détruit et toutes les connexions seront fermées. Par défaut à false.

Note: Désactive la persistance du client n'est généralement pas recommandé.

driver array

Autorise un niveau supérieur de bibliothèque à ajouter ses propres métadonnées à la poignée de main du serveur. Par défaut, l'extension soumet son propre nom, version et plateforme (i.e. version PHP) dans la poignée de main. Les chaînes peuvent être spécifiées pour les clés "name", "version" et "platform" de ce tableau, et seront ajoutées au champ respectif(s) de la poignée de main du serveur.

Note: Les informations de poignée de main sont limitées à 512 octets. L'extension tronquera les données de poignée de main pour s'adapter à cette chaîne de 512 octets. Les bibliothèques de niveau supérieur sont encouragées à conserver leurs propres métadonnées concises.

pem_file string

Le chemin du fichier contenant un certificat PEM à utiliser pour l'authentification du client.

Cette option est un alias obsolète pour l'option d'URI "tlsCertificateKeyFile".

pem_pwd string

La phrase de passe pour le certificat PEM encodé (si applicable).

Cette option est un alias obsolète pour l'option d'URI "tlsCertificateKeyFilePassword".

serverApi MongoDB\Driver\ServerApi

Cette option est utilisée pour déclarer une version d'API serveur pour le Manager. Si omis, aucune version d'API n'est déclarée.

weak_cert_validation bool

Désactive la validation du certificat si true. Par défaut à false.

Cette option est un alias obsolète pour l'option d'URI "tlsAllowInvalidCertificates".

Erreurs / Exceptions

Historique

Version Description
PECL mongodb 1.16.0

Le fournisseur AWS KMS pour le chiffrement côté client accepte désormais une option "sessionToken", qui peut être utilisée pour s'authentifier avec des informations d'identification AWS temporaires.

Ajout de "tlsDisableOCSPEndpointCheck" au champ "tlsOptions" de l'option de pilote "autoEncryption".

Si un document vide est spécifié pour le fournisseur KMS "azure" ou "gcp", le pilote tentera de configurer le fournisseur en utilisant » les informations d'identification automatiques. If an empty document is specified for the "azure" or

PECL mongodb 1.15.0

Si un document vide est spécifié pour le fournisseur KMS "aws", le pilote tentera de configurer le fournisseur en utilisant » les informations d'identification automatiques.

PECL mongodb 1.14.0

Ajout des options de chiffrement côté client "bypassQueryAnalysis" et "encryptedFieldsMap". Des options supplémentaires concernant crypt_shared sont désormais prises en charge dans l'option de chiffrement côté client "extraOptions".

PECL mongodb 1.13.0

Ajout des options d'URI "srvMaxHosts" et "srvServiceName".

PECL mongodb 1.12.0

KMIP est désormais pris en charge en tant que fournisseur KMS pour le chiffrement côté client et peut être configuré dans le champ "kmsProviders" de l'option de pilote "autoEncryption". De plus, les options TLS pour les fournisseurs KMS peuvent désormais être configurées dans le champ "tlsOptions" de l'option de pilote "autoEncryption".

PECL mongodb 1.11.0

Ajout de l'option d'URI "loadBalanced".

PECL mongodb 1.10.0

Ajout de l'option de pilote "disableClientPersistence".

Azure et GCP sont désormais pris en charge en tant que fournisseurs KMS pour le chiffrement côté client et peuvent être configurés dans le champ "kmsProviders" de l'option de pilote "autoEncryption". Les chaînes encodées en base64 sont désormais acceptées en tant qu'alternative à MongoDB\BSON\Binary pour les options dans "kmsProviders".

PECL mongodb 1.8.0

Ajout des options d'URI "directConnection", "tlsDisableCertificateRevocationCheck" et "tlsDisableOCSPEndpointCheck".

Ajout de l'option de pilote "driver".

PECL mongodb 1.7.0

Ajout de l'option de pilote "autoEncryption".

Spécifier n'importe quelle option SSL ou TLS via le paramètre driverOptions activera désormais implicitement TLS, comme c'est le cas pour les options d'URI correspondantes.

PECL mongodb 1.6.0

Ajout des options d'URI "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", et "tlsInsecure".

L'option d'URI "retryWrites" est désormais à true par défaut.

Spécifier une option d'URI SSL ou TLS via la chaîne de connexion ou le paramètre uriOptions activera désormais implicitement TLS à moins que ssl ou tls ne soit false. TLS n'est pas implicitement activé pour les options dans le paramètre driverOptions, ce qui est inchangé par rapport aux versions précédentes.

PECL mongodb 1.5.0

"wtimeoutMS" est désormais toujours validé et appliqué au write concern. Auparavant, l'option était ignorée si "w" était <= 1, car le délai s'applique uniquement à la réplication.

PECL mongodb 1.4.0

Ajout des options d'URI "compressors", "retryWrites", er "zlibCompressionLevel".

PECL mongodb 1.3.0

L'argument uriOptions accepte désormais les options "authMechanism" et "authMechanismProperties". Auparavant, ces options n'étaient prises en charge que dans l'argument uri.

PECL mongodb 1.2.0

L'argument uri est désormais facultatif et par défaut à "mongodb://. Le port par défaut reste 27017.

Ajout de l'option d'URI "appname".

Ajout des options de pilote "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", et "weak_cert_validation".

L'API des flux PHP n'est plus utilisée pour la communication par socket. L'option "connectTimeoutMS" de l'URI est désormais par défaut à 10 secondes au lieu de default_socket_timeout dans les versions précédentes. De plus, l'extension ne prend plus en charge toutes les options de contexte SSL via l'option de pilote "context".

PECL mongodb 1.1.0

L'argument uri est désormais facultatif et par défaut à "mongodb://localhost:27017/".

Exemples

Exemple #1 Exemples basiques MongoDB\Driver\Manager::__construct()

Connexion à un nœud MongoDB autonome:

<?php

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

?>

Connecxion à un nœud MongoDB autonome via un socket de domaine Unix. Le chemin du socket peut inclure des caractères spéciaux tels que des barres obliques et doit être encodé avec rawurlencode().

<?php

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

?>

Connexion à un ensemble de réplicas:

<?php

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

?>

Connexion à un cluster fragmenté (c'est-à-dire un ou plusieurs instances mongos):

<?php

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

?>

Connexion à MongoDB avec des informations d'authentification pour un utilisateur et une base de données particuliers:

<?php

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

?>

Connexion à MongoDB avec des informations d'authentification pour un utilisateur et une base de données particuliers, où le nom d'utilisateur ou le mot de passe inclut des caractères spéciaux (par exemple @, :, %). Dans l'exemple suivant, la chaîne de mot de passe myp@ss:w%rd a été manuellement échappée; cependant, rawurlencode() peut également être utilisé pour échapper les composants d'URI qui peuvent contenir des caractères spéciaux.

<?php

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

?>

Connexion à MongoDB avec l'authentification X509:

<?php

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

User Contributed Notes 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