PHP Conference Kansai 2025

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__constructCrea un nuevo Manager MongoDB

Descripción

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

Construye un nuevo objeto MongoDB\Driver\Manager con las opciones especificadas.

Nota: Con la » Especificación de descubrimiento y monitoreo del servidor, este constructor no realiza E/S. Las conexiones se inicializarán a demanda, cuando se ejecute la primera operación.

Nota: Cuando se especifican opciones de URI SSL o TLS a través de la cadena de conexión o el parámetro uriOptions, la extensión activará implícitamente TLS para sus conexiones. Para evitar esto, desactive explícitamente la opción tls o no especifique ninguna opción TLS.

Nota: En plataformas Unix, el controlador de MongoDB es susceptible a scripts que utilizan la llamada al sistema fork() sin llamar también a exec(). Los usuarios están advertidos de no reusar instancias de MongoDB\Driver\Manager en un proceso hijo bifurcado («forked»).

Parámetros

uri

Una URI de conexión » mongodb://:

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

Para los detalles sobre las opciones de URI admitidas, consulte » Opciones de cadena de conexión en el manual de MongoDB. » Opciones de pool de conexiones no son admitidas, ya que la extensión no implementa pools de conexiones.

Por omisión, "mongodb://127.0.0.1:27017" si no se especifica.

La uri es una URL, por lo que todos los caracteres especiales en sus componentes deben ser codificados en URL según la » RFC 3986. Esto es particularmente relevante para el nombre de usuario y la contraseña, que pueden incluir a menudo caracteres especiales como @, : o %. Cuando se conecta a través de un socket de dominio Unix, la ruta del socket puede contener caracteres especiales como barras oblicuas y debe ser codificada. La función rawurlencode() puede ser utilizada para codificar las partes constitutivas de la URI.

El componente defaultAuthDb puede ser utilizado para especificar la base de datos asociada con las credenciales de usuario; sin embargo, la opción de URI authSource tendrá prioridad si se especifica. Si ni defaultAuthDb ni authSource se especifican, la base de datos admin será utilizada por omisión. El componente defaultAuthDb no tiene efecto en ausencia de credenciales de usuario.

uriOptions

Opciones adicionales » de cadena de conexión, que sobrescribirán cualquier opción con el mismo nombre en el parámetro uri.

uriOptions
Opción Tipo Descripción
appname string

MongoDB 3.4+ tiene la capacidad de anotar las conexiones con metadatos proporcionados por el cliente conectado. Estos metadatos se incluyen en los registros del servidor al establecer una conexión y también se registran en los registros de consultas lentas cuando se activa el perfilado de la base de datos.

Esta opción puede ser utilizada para especificar un nombre de aplicación, que será incluido en los metadatos. El valor no puede exceder los 128 caracteres de longitud.

authMechanism string

El mecanismo de autenticación que MongoDB utilizará para autenticar la conexión. Para más detalles y una lista de los valores admitidos, consulte » Opciones de autenticación en el manual de MongoDB.

authMechanismProperties array

Las propiedades específicas del mecanismo de autenticación seleccionado. Para más detalles y una lista de las propiedades admitidas, consulte la » Especificación de autenticación del controlador.

Nota: Cuando no se especifica en la cadena de URI, esta opción se expresa como un array de pares clave/valor. Las claves y valores de este array deben ser cadenas.

authSource string

El nombre de la base de datos asociada con las credenciales de usuario. Por omisión al componente de la base de datos de la URI de conexión, o a la base de datos admin si ambos no se especifican.

Para los mecanismos de autenticación que no admiten la noción de base de datos (por ejemplo, GSSAPI), esto debería ser "$external".

compressors string

Una lista priorizada y delimitada por comas de compresores que el cliente desea utilizar. Los mensajes solo se comprimen si el cliente y el servidor comparten compresores en común, y el compresor utilizado en cada dirección dependerá de la configuración individual del servidor o del controlador. Consulte la » Especificación de compresión del controlador para más información.

connectTimeoutMS int

El tiempo en milisegundos para intentar una conexión antes de expirar. Por omisión a 10 000 milisegundos.

directConnection bool

Esta opción puede ser utilizada para controlar el comportamiento de descubrimiento del conjunto de réplicas cuando se proporciona un solo host en la cadena de conexión. Por omisión, proporcionar un solo miembro en la cadena de conexión establecerá una conexión directa o descubrirá miembros adicionales según si la opción de URI "replicaSet" se omite o se presenta, respectivamente. Especifique false para forzar el descubrimiento a ocurrir (si "replicaSet" se omite) o especifique true para forzar una conexión directa (si "replicaSet" se presenta).

heartbeatFrequencyMS int

Especifica el intervalo en milisegundos entre las verificaciones de la topología de MongoDB, contado desde el final de la verificación anterior hasta el inicio de la siguiente. Por omisión a 60 000 milisegundos.

Para la » Especificación de descubrimiento y monitoreo del servidor, este valor no puede ser inferior a 500 milisegundos.

journal bool

Corresponde a la opción journal del write concern por omisión. Si true, las escrituras requerirán un acuse de recibo de MongoDB indicando que la operación ha sido escrita en el journal. Para más detalles, consulte MongoDB\Driver\WriteConcern.

loadBalanced bool

Especifica si el controlador se conecta a un clúster de MongoDB a través de un balanceador de carga. Si true, el controlador solo puede conectarse a un solo host (especificado por la cadena de conexión o la búsqueda SRV), la opción de URI "directConnection" no puede ser true, y la opción de URI "replicaSet" debe ser omitida. Por omisión a false.

localThresholdMS int

El tamaño en milisegundos de la ventana de latencia para la selección entre múltiples instancias de MongoDB apropiadas al resolver una preferencia de lectura. Por omisión a 15 milisegundos.

maxStalenessSeconds int

Corresponde a la opción maxStalenessSeconds de la preferencia de lectura. Especifica, en segundos, la antigüedad máxima de una instancia secundaria antes de que el cliente deje de utilizarla para las operaciones de lectura. Por omisión, no hay antigüedad máxima y los clientes no tendrán en cuenta la antigüedad de una instancia secundaria al elegir la dirección de una operación de lectura. Para más detalles, consulte MongoDB\Driver\ReadPreference.

Si se especifica, la antigüedad máxima debe ser un entero signado de 32 bits mayor o igual a MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (por ejemplo, 90 segundos).

password string La contraseña del usuario en curso de autenticación. Esta opción es útil si la contraseña contiene caracteres especiales, que deberían ser codificados en URL para la URI de conexión.
readConcernLevel string Corresponde a la opción level de la preferencia de lectura. Especifica el nivel de aislamiento de lectura. Para más detalles, consulte MongoDB\Driver\ReadConcern.
readPreference string

Corresponde a la opción mode de la preferencia de lectura. Por omisión a "primary". Para más detalles, consulte MongoDB\Driver\ReadPreference.

readPreferenceTags array

Corresponde a la opción tagSets de la preferencia de lectura. Los conjuntos de etiquetas permiten dirigir las operaciones de lectura a miembros específicos de un conjunto de réplicas. Para más detalles, consulte MongoDB\Driver\ReadPreference.

Nota: Cuando no se especifica en la cadena de URI, esta opción se expresa como un array conforme al formato esperado por MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Especifica el nombre del conjunto de réplicas.

retryReads bool

Especifica si el controlador debe reintentar automáticamente ciertas operaciones de lectura que fallan debido a errores de red transitorios o elecciones del conjunto de réplicas. Esta funcionalidad requiere MongoDB 3.6+. Por omisión a true.

Consulte la » Especificación de lectura reintentable para más información.

retryWrites bool

Especifica si el controlador debe reintentar automáticamente ciertas operaciones de escritura que fallan debido a errores de red transitorios o elecciones del conjunto de réplicas. Esta funcionalidad requiere MongoDB 3.6+. Por omisión a true.

Consulte » Escrituras reintentables en el manual de MongoDB para más información.

serverSelectionTimeoutMS int

Especifica cuánto tiempo en milisegundos bloquear para la selección del servidor antes de lanzar una excepción. Por omisión a 30 000 milisegundos.

serverSelectionTryOnce bool

Cuando true, indica al controlador que escanee el despliegue de MongoDB exactamente una vez después de un fallo de selección del servidor, luego seleccione un servidor o lance una excepción. Cuando false, el controlador bloquea y busca un servidor hasta el valor de "serverSelectionTimeoutMS". Por omisión a true.

socketCheckIntervalMS int

Si un socket no ha sido utilizado recientemente, el controlador debe verificarlo a través de una comando hello antes de utilizarlo para cualquier operación. Por omisión a 5 000 milisegundos.

socketTimeoutMS int

El tiempo en milisegundos para intentar un envío o una recepción en un socket antes de expirar. Por omisión a 300 000 milisegundos (es decir, cinco minutos).

srvMaxHosts int

El número máximo de resultados SRV a seleccionar al azar cuando se realiza la primera población de la lista de semillas o, al sondear SRV, la adición de nuevos hosts a la topología. Por omisión a 0 (es decir, sin máximo).

srvServiceName string

El nombre del servicio a utilizar para la búsqueda SRV en la lista de semillas inicial y el sondeo SRV. Por omisión a "mongodb".

tls bool

Inicializa la conexión con TLS/SSL si true. Por omisión a false.

tlsAllowInvalidCertificates bool

Especifica si el controlador debe generar un error cuando el certificado TLS del servidor es inválido. Por omisión a false.

Advertencia

Desactivar la validación del certificado crea una vulnerabilidad.

tlsAllowInvalidHostnames bool

Especifica si el controlador debe generar un error cuando hay un desacuerdo entre el nombre de host del servidor y el nombre de host especificado por el certificado TLS. Por omisión a false.

Advertencia

Desactiva la validación del certificado creando una vulnerabilidad. Permitir nombres de host inválidos puede exponer el controlador a una » ataque de hombre en el medio.

tlsCAFile string

La ruta del fichero que contiene un solo certificado o un conjunto de certificados de autoridades a considerar como fiables al establecer una conexión TLS. El almacén de certificados del sistema será utilizado por omisión.

tlsCertificateKeyFile string

La ruta del fichero de certificado del cliente o del fichero de clave privada del cliente; en el caso de que ambos sean necesarios, los ficheros deben ser concatenados.

tlsCertificateKeyFilePassword string

La contraseña para descifrar la clave privada del cliente (es decir, la opción de URI "tlsCertificateKeyFile") a utilizar para las conexiones TLS.

tlsDisableCertificateRevocationCheck bool

Si true, el controlador no intentará verificar el estado de revocación del certificado (por ejemplo, OCSP, CRL). Por omisión a false.

tlsDisableOCSPEndpointCheck bool

Si true, el controlador no intentará contactar a un punto de terminación de respuesta OCSP si es necesario (es decir, una respuesta OCSP no está agrafada). Por omisión a false.

tlsInsecure bool

Relaja las restricciones TLS tanto como sea posible. Especificar true para que esta opción tenga el mismo efecto que especificar true para las opciones de URI "tlsAllowInvalidCertificates" y "tlsAllowInvalidHostnames". Por omisión a false.

Advertencia

Desactiva la validación del certificado creando una vulnerabilidad. Permitir nombres de host inválidos puede exponer el controlador a una » ataque de hombre en el medio.

username string El nombre de usuario del usuario en curso de autenticación. Esta opción es útil si el nombre de usuario contiene caracteres especiales, que deberían ser codificados en URL para la URI de conexión.
w int|string

Corresponde a la opción w del write concern por omisión. Para más detalles, consulte MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Corresponde a la opción wtimeout del write concern por omisión. Especifica un límite de tiempo, en milisegundos, para el write concern. Para más detalles, consulte MongoDB\Driver\WriteConcern.

Si se especifica, wTimeoutMS debe ser un entero signado de 32 bits mayor o igual a cero.

zlibCompressionLevel int

Especifica el nivel de compresión a utilizar para el compresor zlib. Esta opción no tiene efecto si zlib no está incluido en la opción de URI "compressors". Consulte la » Especificación de compresión del controlador para más información.

driverOptions

driverOptions
Opción Tipo Descripción
autoEncryption array

Aporta opciones para activar el cifrado del lado del cliente a nivel de los campos.

Nota:

El cifrado automático es una funcionalidad empresarial que solo se aplica a las operaciones sobre una colección. El cifrado automático no es admitido para las operaciones sobre una base de datos o una vista, y las operaciones que no son eludidas resultarán en un error (consulte » libmongocrypt: La lista de permisos de cifrado automático). Para eludir el cifrado automático para todas las operaciones, defina bypassAutoEncryption a true.

El cifrado automático requiere que el usuario autenticado tenga el privilegio de acción » listCollections.

El cifrado explícito y automático es una funcionalidad de la comunidad. El controlador puede siempre descifrar automáticamente cuando bypassAutoEncryption es true.

Las siguientes opciones son admitidas:

Opciones para el cifrado automático
Opción Tipo Descripción
keyVaultClient MongoDB\Driver\Manager The Manager used to route data key queries to a separate MongoDB cluster. By default, the current Manager and cluster is used.
keyVaultNamespace string A fully qualified namespace (e.g. "databaseName.collectionName") denoting the collection that contains all data keys used for encryption and decryption. This option is required.
kmsProviders array

A document containing the configuration for one or more KMS providers, which are used to encrypt data keys. Supported providers include "aws", "azure", "gcp", "kmip", and "local" and at least one must be specified.

If an empty document is specified for "aws", "azure", or "gcp", the driver will attempt to configure the provider using » Automatic Credentials.

The format for "aws" is as follows:

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

The format for "azure" is as follows:

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

The format for "gcp" is as follows:

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

The format for "kmip" is as follows:

kmip: {
    endpoint: <string>
}

The format for "local" is as follows:

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

A document containing the TLS configuration for one or more KMS providers. Supported providers include "aws", "azure", "gcp", and "kmip". All providers support the following options:

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

Mapea los espacios de nombres de colección a un esquema JSON local. Esto es utilizado para configurar el cifrado automático. Consulte » Reglas de cifrado automático en el manual de MongoDB para más información. Es un error especificar una colección tanto en schemaMap como en encryptedFieldsMap.

Nota: Proporcionar un schemaMap proporciona más seguridad que confiar en los esquemas JSON obtenidos del servidor. Esto protege contra un servidor malicioso anunciando un esquema JSON falso, que podría engañar al cliente para enviar datos no cifrados que deberían estar cifrados.

Nota: Los esquemas proporcionados en el schemaMap solo se aplican a la configuración del cifrado automático para el cifrado del lado del cliente. Otras reglas de validación en el esquema JSON no serán aplicadas por el controlador y resultarán en un error.

bypassAutoEncryption bool Si true, mongocryptd no se iniciará automáticamente. Esto se utiliza para desactivar el cifrado automático. Por omisión a false.
bypassQueryAnalysis bool

Si true, el análisis automático de los comandos salientes será desactivado y mongocryptd no se iniciará automáticamente. Esto permite el caso de uso del cifrado explícito para consultar campos indexados sin requerir la biblioteca crypt_shared con licencia empresarial o el proceso mongocryptd. Por omisión a false.

encryptedFieldsMap array|object

Mapea los espacios de nombres de colección a un documento encryptedFields. Esto se utiliza para configurar el cifrado interrogante. Consulte » Cifrado de campo y capacidad de consulta en el manual de MongoDB para más información. Es un error especificar una colección tanto en encryptedFieldsMap como en schemaMap.

Nota: Proporcionar un encryptedFieldsMap proporciona más seguridad que confiar en los encryptedFields obtenidos del servidor. Esto protege contra un servidor malicioso anunciando un encryptedFields falso.

extraOptions array

Las extraOptions se refieren al proceso mongocryptd. Las siguientes opciones son admitidas:

  • mongocryptdURI (string): URI para conectarse a un proceso mongocryptd existente. Por omisión a "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): Si true, impide que el controlador inicie mongocryptd. Por omisión a false.
  • mongocryptdSpawnPath (string): Ruta absoluta para buscar el binario mongocryptd. Por omisión a una cadena vacía y consulta los caminos del sistema.
  • mongocryptdSpawnArgs (array): Array de argumentos de cadena a pasar a mongocryptd al iniciar. Por omisión a ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Ruta absoluta a la biblioteca compartida crypt_shared. Por omisión a una cadena vacía y consulta los caminos del sistema.
  • cryptSharedLibRequired (bool): Si true, exige que el controlador cargue crypt_shared. Por omisión a false.

Consulte la » Especificación de cifrado del lado del cliente para más información.

Nota: El cifrado automático es una funcionalidad empresarial que solo se aplica a las operaciones sobre una colección. El cifrado automático no es admitido para las operaciones sobre una base de datos o una vista, y las operaciones que no son eludidas resultarán en un error. Para eludir el cifrado automático para todas las operaciones, defina bypassAutoEncryption=true en autoEncryption. Para más información sobre las operaciones permitidas, consulte la » Especificación de cifrado del lado del cliente.

ca_dir string

La ruta del directorio de certificados correctamente hasheados. El almacén de certificados del sistema será utilizado por omisión.

crl_file string La ruta del fichero de lista de revocación de certificado.
disableClientPersistence bool

Si true, este Manager utilizará un nuevo cliente libmongoc, que no será persistido o compartido con otros objetos Manager. Cuando este objeto Manager es liberado, su cliente será destruido y todas las conexiones serán cerradas. Por omisión a false.

Nota: Desactivar la persistencia del cliente no es generalmente recomendado.

driver array

Permite a un nivel superior de biblioteca añadir sus propios metadatos al apretón de manos del servidor. Por omisión, la extensión somete su propio nombre, versión y plataforma (es decir, versión PHP) en el apretón de manos. Las cadenas pueden ser especificadas para las claves "name", "version" y "platform" de este array, y serán añadidas al campo respectivo(s) del apretón de manos del servidor.

Nota: La información de apretón de manos está limitada a 512 bytes. La extensión truncará los datos de apretón de manos para ajustarse a esta cadena de 512 bytes. Las bibliotecas de nivel superior están alentadas a mantener sus propios metadatos concisos.

serverApi MongoDB\Driver\ServerApi

Esta opción se utiliza para declarar una versión de API del servidor para el Manager. Si se omite, no se declarará ninguna versión de API.

Errores/Excepciones

Historial de cambios

Versión Descripción
PECL mongodb 2.0.0

La opción de URI "authMechanismProperties" ha sido eliminada. Utilizar la propiedad "CANONICALIZE_HOST_NAME" de la opción de URI "authMechanismProperties" en su lugar.

La opción de URI "authMechanism" ha sido eliminada. Utilizar la propiedad "SERVICE_NAME" de la opción de URI "authMechanismProperties" en su lugar.

La opción de URI "authSource" ha sido eliminada. Utilizar las opciones de URI "w" y "wTimeoutMS" en su lugar.

La opción de URI "ssl" ha sido eliminada. Utilizar la opción de URI "tls" en su lugar.

La opción de controlador "allow_invalid_hostname" ha sido eliminada. Utilizar la opción de URI "tlsAllowInvalidHostnames" en su lugar.

La opción de controlador "ca_file" ha sido eliminada. Utilizar la opción de URI "tlsCAFile" en su lugar.

La opción de controlador "context" ha sido eliminada. Todas las opciones de contexto han sido deprecadas en favor de las diversas opciones de URI relacionadas con TLS.

La opción de controlador "pem_file" ha sido eliminada. Utilizar la opción de URI "tlsCertificateKeyFile" en su lugar.

La opción de controlador "pem_pwd" ha sido eliminada. Utilizar la opción de URI "tlsCertificateKeyFilePassword" en su lugar.

La opción de controlador "weak_cert_validation" ha sido eliminada. Utilizar la opción de URI "tlsAllowInvalidCertificates" en su lugar.

PECL mongodb 1.16.0

El proveedor AWS KMS para el cifrado del lado del cliente acepta ahora una opción "sessionToken", que puede ser utilizada para autenticarse con credenciales AWS temporales.

Añadir "tlsDisableOCSPEndpointCheck" al campo "tlsOptions" de la opción de controlador "autoEncryption".

Si se especifica un documento vacío para el proveedor KMS "azure" o "gcp", el controlador intentará configurar el proveedor utilizando » las credenciales automáticas. Si se especifica un documento vacío para el

PECL mongodb 1.15.0

Si se especifica un documento vacío para el proveedor KMS "aws", el controlador intentará configurar el proveedor utilizando » las credenciales automáticas.

PECL mongodb 1.14.0

Añadir las opciones de cifrado del lado del cliente "bypassQueryAnalysis" y "encryptedFieldsMap". Opciones adicionales relacionadas con crypt_shared son ahora admitidas en la opción de cifrado del lado del cliente "extraOptions".

PECL mongodb 1.13.0

Añadir las opciones de URI "srvMaxHosts" y "srvServiceName".

PECL mongodb 1.12.0

KMIP es ahora admitido como proveedor KMS para el cifrado del lado del cliente y puede ser configurado en el campo "kmsProviders" de la opción de controlador "autoEncryption". Además, las opciones TLS para los proveedores KMS pueden ahora ser configuradas en el campo "tlsOptions" de la opción de controlador "autoEncryption".

PECL mongodb 1.11.0

Añadir la opción de URI "loadBalanced".

PECL mongodb 1.10.0

Añadir la opción de controlador "disableClientPersistence".

Azure y GCP son ahora admitidos como proveedores KMS para el cifrado del lado del cliente y pueden ser configurados en el campo "kmsProviders" de la opción de controlador "autoEncryption". Las cadenas codificadas en base64 son ahora aceptadas como alternativa a MongoDB\BSON\Binary para las opciones en "kmsProviders".

PECL mongodb 1.8.0

Añadir las opciones de URI "directConnection", "tlsDisableCertificateRevocationCheck" y "tlsDisableOCSPEndpointCheck".

Añadir la opción de controlador "driver".

PECL mongodb 1.7.0

Añadir la opción de controlador "autoEncryption".

Especificar cualquier opción SSL o TLS a través del parámetro driverOptions activará ahora implícitamente TLS, como es el caso para las opciones de URI correspondientes.

PECL mongodb 1.6.0

Añadir las opciones de URI "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword", y "tlsInsecure".

La opción de URI "retryWrites" es ahora true por omisión.

Especificar una opción de URI SSL o TLS a través de la cadena de conexión o el parámetro uriOptions activará ahora implícitamente TLS a menos que ssl o tls sea false. TLS no es no activado implícitamente para las opciones en el parámetro driverOptions, lo cual es invariable respecto a versiones anteriores.

PECL mongodb 1.5.0

"wtimeoutMS" es ahora siempre validado y aplicado al write concern. Anteriormente, la opción era ignorada si "w" era <= 1, ya que el límite de tiempo se aplica solo a la replicación.

PECL mongodb 1.4.0

Añadir las opciones de URI "compressors", "retryWrites", y "zlibCompressionLevel".

PECL mongodb 1.3.0

El argumento uriOptions acepta ahora las opciones "authMechanism" y "authMechanismProperties". Anteriormente, estas opciones solo eran admitidas en el argumento uri.

PECL mongodb 1.2.0

El argumento uri es ahora opcional y por omisión a "mongodb://. El puerto por omisión sigue siendo 27017.

Añadir la opción de URI "appname".

Añadir las opciones de controlador "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd", y "weak_cert_validation".

La API de flujo PHP ya no es utilizada para la comunicación por socket. La opción "connectTimeoutMS" de la URI es ahora por omisión a 10 segundos en lugar de default_socket_timeout en versiones anteriores. Además, la extensión ya no admite todas las opciones de contexto SSL a través de la opción de controlador "context".

PECL mongodb 1.1.0

El argumento uri es ahora opcional y por omisión a "mongodb://localhost:27017/".

Ejemplos

Ejemplo #1 Ejemplos básicos MongoDB\Driver\Manager::__construct()

Conexión a un nodo MongoDB autónomo:

<?php

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

?>

Conexión a un nodo MongoDB autónomo a través de un socket de dominio Unix. La ruta del socket puede incluir caracteres especiales como barras oblicuas y debe ser codificada con rawurlencode().

<?php

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

?>

Conexión a un conjunto de réplicas:

<?php

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

?>

Conexión a un clúster fragmentado (es decir, una o más instancias mongos):

<?php

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

?>

Conexión a MongoDB con credenciales de autenticación para un usuario y una base de datos particulares:

<?php

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

?>

Conexión a MongoDB con credenciales de autenticación para un usuario y una base de datos particulares, donde el nombre de usuario o la contraseña incluyen caracteres especiales (por ejemplo, @, :, %). En el siguiente ejemplo, la cadena de contraseña myp@ss:w%rd ha sido escapada manualmente; sin embargo, rawurlencode() también puede ser utilizado para escapar los componentes de URI que pueden contener caracteres especiales.

<?php

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

?>

Conexión a MongoDB con autenticación 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
-5
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