Crée un nouveau Manager MongoDB

# MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__construct — Crée un nouveau Manager MongoDB

### Description

final public function 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]]

  Par défaut, `"mongodb://127.0.0.1:27017"` si non spécifié. 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. 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"`.
  compressors | string | Une 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écifier `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).
  enableOverloadRetargeting | bool | Lorsque définie à `true`, force la sélection du serveur après une `SystemOverloadedError`. Par défaut à `false`.
  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écifie 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.
  maxAdaptiveRetries | int | Cette option peut être utilisée pour modifier le nombre maximum de tentatives lorsqu'une `SystemOverloadedError` se produit. Doit être un entier positif; par défaut à `2`.
  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écifie 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écifie 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.
  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 (c.-à-d. 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` (c.-à-d. 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"`.
  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échiffrer la clé privée client (c.-à-d. 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 (c.-à-d. 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écifie 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
  --- | --- | ---
  autoEncryption | array | Apporte des options pour activer le chiffrement côté client au niveau des champs. La liste des options est décrite dans la table en dessous. 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: La 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échiffrer automatiquement lorsque `bypassAutoEncryption` est `true`.
  ca_dir | string | Le chemin du répertoire de certificats correctement hachés. Le magasin de certificats système sera utilisé par défaut.
  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ésactiver 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 (c.-à-d. 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.
  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.

  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.

### Erreurs / Exceptions

- Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.
- Lance une exception MongoDB\Driver\Exception\RuntimeException si le format de l'`uri` est invalide

### Historique

Version | Description
--- | ---
PECL mongodb 2.0.0 | L'option d'URI `"canonicalizeHostname"` a été supprimée. Utiliser la propriété `"CANONICALIZE_HOST_NAME"` de l'option d'URI `"authMechanismProperties"` plutôt. L'option d'URI `"gssapiServiceName"` a été supprimée. Utiliser la propriété `"SERVICE_NAME"` de l'option d'URI `"authMechanismProperties"` plutôt. L'option d'URI `"safe"` a été supprimée. Utiliser les options d'URI `"w"` et `"wTimeoutMS"` plutôt. L'option d'URI `"ssl"` a été supprimée. Utiliser l'option d'URI `"tls"` plutôt. L'option de pilote `"allow_invalid_hostname"` a été supprimée. Utiliser l'option d'URI `"tlsAllowInvalidHostnames"` plutôt. L'option de pilote `"ca_file"` a été supprimée. Utiliser l'option d'URI `"tlsCAFile"` plutôt. L'option de pilote `"context"` a été supprimée. Toutes les options de contexte ont été dépréciées en faveur des diverses options d'URI liées à TLS. L'option de pilote `"pem_file"` a été supprimée. Utiliser l'option d'URI `"tlsCertificateKeyFile"` plutôt. L'option de pilote `"pem_pwd"` a été supprimée. Utiliser l'option d'URI `"tlsCertificateKeyFilePassword"` plutôt. L'option de pilote `"weak_cert_validation"` a été supprimée. Utiliser l'option d'URI `"tlsAllowInvalidCertificates"` plutôt.
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.
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"`, et `"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");

    ?>

Connexion à 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",
        ]
    );
    ?>

### Voir aussi

- Gestion de la connexion et de la persistance
- » Format de chaîne de connexion MongoDB

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open