(mongodb >=1.0.0)
MongoDB\Driver\Manager::__construct — Crée un nouveau Manager MongoDB
$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'optiontls
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.
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
.
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.
|
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
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
|
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 |
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 |
loadBalanced | bool |
Spécife si le pilote se connecte à un cluster MongoDB via
un équilibreur de charge. Si |
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
Si spécifié, la durée de validité maximale doit être un entier signé de 32 bits
supérieur ou égal à
|
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 |
readPreferenceTags | array |
Correspond à l'option
|
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 à 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 à 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 |
socketCheckIntervalMS | int |
Si un socket n'a pas été utilisé récemment, le pilote doit le vérifier via
une commande |
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 à |
srvServiceName | string |
Le nom de service à utiliser pour la recherche SRV dans la liste de semences initiale
et le sondage SRV. Par défaut à |
tls | bool |
Initialise la connexion avec TLS/SSL si |
tlsAllowInvalidCertificates | bool |
Spécifie si le pilote doit générer une erreur lorsque le certificat
TLS du serveur est invalide. Par défaut à 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 à 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 |
tlsDisableCertificateRevocationCheck | bool |
Si |
tlsDisableOCSPEndpointCheck | bool |
Si |
tlsInsecure | bool |
Détend les contraintes TLS autant que possible. Spécifier 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 |
wTimeoutMS | int|string |
Correspond à l'option
Si spécifié, |
zlibCompressionLevel | int |
Spécife le niveau de compression à utiliser pour le compresseur zlib. Cette
option n'a aucun effet si |
driverOptions
Option | Type | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
autoEncryption | array |
Apporte des options pour activer le chiffrement côté client au niveau des champs.
Les options suivantes sont prises en charge:
|
||||||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||||||
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. |
Version | Description |
---|---|
PECL mongodb 2.0.0 |
L'option d'URI
L'option d'URI
L'option d'URI
L'option d'URI
L'option de pilote
L'option de pilote
L'option de pilote
L'option de pilote
L'option de pilote
L'option de pilote |
PECL mongodb 1.16.0 |
Le fournisseur AWS KMS pour le chiffrement côté client accepte désormais une
option
Ajout de
Si un document vide est spécifié pour le fournisseur KMS |
PECL mongodb 1.15.0 |
Si un document vide est spécifié pour le fournisseur KMS |
PECL mongodb 1.14.0 |
Ajout des options de chiffrement côté client |
PECL mongodb 1.13.0 |
Ajout des options d'URI |
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 |
PECL mongodb 1.11.0 |
Ajout de l'option d'URI |
PECL mongodb 1.10.0 |
Ajout de l'option de pilote
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
|
PECL mongodb 1.8.0 |
Ajout des options d'URI
Ajout de l'option de pilote |
PECL mongodb 1.7.0 |
Ajout de l'option de pilote
Spécifier n'importe quelle option SSL ou TLS via le paramètre
|
PECL mongodb 1.6.0 |
Ajout des options d'URI
L'option d'URI
Spécifier une option d'URI SSL ou TLS via la chaîne de connexion ou
le paramètre |
PECL mongodb 1.5.0 |
|
PECL mongodb 1.4.0 |
Ajout des options d'URI |
PECL mongodb 1.3.0 |
L'argument |
PECL mongodb 1.2.0 |
L'argument
Ajout de l'option d'URI
Ajout des options de pilote
L'API des flux PHP n'est plus utilisée pour la communication par socket. L'option
|
PECL mongodb 1.1.0 |
L'argument |
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",
]
);
?>