PHP 8.5.0 Alpha 2 available for testing

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 supervisión del servidor, este constructor no realiza E/S. Las conexiones se inicializarán bajo demanda, durante la ejecución de 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 las plataformas Unix, la extensión MongoDB es sensible a los scripts que utilizan la llamada al sistema fork() sin llamar a exec(). No se deben reutilizar instancias MongoDB\Driver\Manager en un proceso hijo derivado de un fork.

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, ver » Opciones de cadena de conexión en el manual 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.

El uri es una URL, por lo que todos los caracteres especiales en sus componentes deben estar codificados en URL según la » RFC 3986. Esto es particularmente relevante para el nombre de usuario y la contraseña, que pueden incluir caracteres especiales tales como @, : o %. Al conectarse a través de un socket de dominio Unix, la ruta del socket puede contener caracteres especiales como barras diagonales y debe estar 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 a las credenciales del 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 ningún 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 el perfilado de la base de datos está activado.

Esta opción puede ser utilizada para especificar un nombre de aplicación, que será incluido en los metadatos. El valor no puede exceder 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, ver » Opciones de autenticación en el manual MongoDB.

authMechanismProperties array

Las propiedades específicas del mecanismo de autenticación seleccionado. Para más detalles y una lista de las propiedades admitidas, ver 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 strings.

authSource string

El nombre de la base de datos asociada a las credenciales del 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. Ver 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, 10 000 milisegundos.

directConnection bool

Esta opción puede ser utilizada para controlar el comportamiento de descubrimiento del conjunto de réplicas cuando solo se proporciona un 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" está omitida o presente, respectivamente. Especifique false para forzar el descubrimiento a que ocurra (si "replicaSet" está omitido) o especifique true para forzar una conexión directa (si "replicaSet" está presente).

heartbeatFrequencyMS int

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

Para la » Especificación de descubrimiento y supervisión 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 diario. Para más detalles, ver MongoDB\Driver\WriteConcern.

loadBalanced bool

Especifica si el controlador se conecta a un clúster MongoDB a través de un equilibrador 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, false.

localThresholdMS int

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

maxStalenessSeconds int

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

Si se especifica, la duración máxima de validez debe ser un entero de 32 bits firmado superior o igual a MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (por ejemplo, 90 segundos).

password string La contraseña del usuario en proceso de autenticación. Esta opción es útil si la contraseña contiene caracteres especiales, que de otro modo deberían estar 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, ver MongoDB\Driver\ReadConcern.
readPreference string

Corresponde a la opción mode de la preferencia de lectura. Por omisión, "primary". Para más detalles, ver 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, ver 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 de conjunto de réplicas. Esta funcionalidad requiere MongoDB 3.6+. Por omisión, true.

Ver 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 de conjunto de réplicas. Esta funcionalidad requiere MongoDB 3.6+. Por omisión, true.

Ver » Escrituras reintentables en el manual 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, 30 000 milisegundos.

serverSelectionTryOnce bool

Cuando true, indica al controlador que escanee el despliegue 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, true.

socketCheckIntervalMS int

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

socketTimeoutMS int

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

srvMaxHosts int

El número máximo de resultados SRV a seleccionar aleatoriamente durante la primera población de la lista de semillas o, durante la consulta SRV, la adición de nuevos hosts a la topología. Por omisión, 0 (es decir, sin máximo).

srvServiceName string

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

tls bool

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

tlsAllowInvalidCertificates bool

Especifica si el controlador debe generar un error cuando el certificado TLS del servidor es inválido. Por omisión, 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, false.

Advertencia

Desactivar la validación del certificado crea una vulnerabilidad. Permitir nombres de host inválidos puede exponer al controlador a una » ataque del hombre del medio.

tlsCAFile string

La ruta del archivo que contiene un solo certificado o un conjunto de certificados de autoridades a considerar confiables al establecer una conexión TLS. Se utilizará el almacén de certificados del sistema por omisión.

tlsCertificateKeyFile string

La ruta del archivo de certificado del cliente o del archivo de clave privada del cliente; en el caso de que ambos sean necesarios, los archivos deben estar 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, false.

tlsDisableOCSPEndpointCheck bool

Si true, el controlador no intentará contactar un punto de extremo de responso OCSP si es necesario (es decir, una respuesta OCSP no está grapada). Por omisión, 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, false.

Advertencia

Desactivar la validación del certificado crea una vulnerabilidad. Permitir nombres de host inválidos puede exponer al controlador a una » ataque del hombre del medio.

username string El nombre de usuario del usuario en proceso de autenticación. Esta opción es útil si el nombre de usuario contiene caracteres especiales, que de otro modo deberían estar 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, ver 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, ver MongoDB\Driver\WriteConcern.

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

zlibCompressionLevel int

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

driverOptions

driverOptions
Opción Tipo Descripción
autoEncryption array

Proporciona opciones para activar el cifrado automático a nivel de campo. La lista de opciones se describe en la tabla de abajo.

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 sorteadas resultarán en un error (ver » libmongocrypt: La lista de autorización de cifrado automático). Para sortear el cifrado automático para todas las operaciones, establezca 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 siempre puede descifrar automáticamente cuando bypassAutoEncryption es true.

ca_dir string

La ruta del directorio de certificados correctamente hashados. Se utilizará el almacén de certificados del sistema por omisión.

crl_file string La ruta del archivo de lista de revocación de certificados.
disableClientPersistence bool

Si true, este Manager utilizará un nuevo cliente libmongoc, que no será persistido ni 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, false.

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

driver array

Permite a un nivel superior de biblioteca añadir sus propias metadatos al apretón de manos del servidor. Por omisión, la extensión envía 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: Las informaciones del apretón de manos están limitadas a 512 bytes. La extensión truncará los datos del apretón de manos para adaptarse a esta cadena de 512 bytes. Las bibliotecas de nivel superior están animadas a mantener sus propias metadatos concisas.

serverApi MongoDB\Driver\ServerApi

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

Las siguientes opciones son admitidas:

Opciones para el cifrado automático
Opción Tipo Descripción
keyVaultClient MongoDB\Driver\Manager El Manager utilizado para enrutar las peticiones de claves de datos a un cluster MongoDB diferente. Por omisión, el Manager y cluster actual es utilizado.
keyVaultNamespace string Un nombre de espacio completamente calificado (por ejemplo "databaseName.collectionName") denotando la colección que contiene todas las claves de datos utilizadas para el cifrado y descifrado. Esta opción es requerida.
kmsProviders array

Un documento que contiene la configuración de uno o varios proveedores KMS, que se utilizan para cifrar las claves de datos. Los proveedores soportados son "aws", "azure", "gcp" y "local", y al menos uno debe ser especificado.

Si se especifica un documento vacío para "aws", "azure", o "gcp", el controlador intentará configurar el proveedor utilizando » Automatic Credentials.

El formato para "aws" es el siguiente :

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

El formato para "azure" es el siguiente :

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

}

El formato para "gcp" es el siguiente :

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

}

El formato para "kmip" es el siguiente :

kmip: {
    endpoint: <string>
}

El formato para "local" es el siguiente :

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

Un documento que contiene la configuración TLS de uno o varios proveedores KMS. Los proveedores soportados son "aws", "azure", "gcp" y "kmip". Todos los proveedores soportan las siguientes opciones :

<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 se utiliza para configurar el cifrado automático. Ver » Reglas de cifrado automático en el manual 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 malintencionado anunciando un falso esquema JSON, 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 será lanzado automáticamente. Esto se utiliza para desactivar el cifrado automático. Por omisión, false.
bypassQueryAnalysis bool

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

encryptedFieldsMap array|object

Mapea los espacios de nombres de colección a un documento encryptedFields. Esto se utiliza para configurar el cifrado consultable. Ver » Cifrado de campo y consultabilidad en el manual 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 malintencionado anunciando un falso encryptedFields.

extraOptions array

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

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

Ver 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 sorteadas resultarán en un error. Para sortear el cifrado automático para todas las operaciones, establezca bypassAutoEncryption=true en autoEncryption. Para más información sobre las operaciones admitidas, ver la » Especificación de cifrado del lado del cliente.

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 ahora acepta una opción "sessionToken", que puede ser utilizada para autenticarse con credenciales AWS temporales.

Añadido "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. If an empty document is specified for the "azure" or

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ñadidas 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ñadidas 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ñadida la opción de URI "loadBalanced".

PECL mongodb 1.10.0

Añadida 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ñadidas las opciones de URI "directConnection", "tlsDisableCertificateRevocationCheck" y "tlsDisableOCSPEndpointCheck".

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

PECL mongodb 1.7.0

Añadida 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 ocurre con las opciones de URI correspondientes.

PECL mongodb 1.6.0

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

La opción de URI "retryWrites" está ahora a 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 implícitamente activado para las opciones en el parámetro driverOptions, lo que es inalterado con respecto a las 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 tiempo de espera solo se aplica a la replicación.

PECL mongodb 1.4.0

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

PECL mongodb 1.3.0

El argumento uriOptions ahora acepta 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 "mongodb://. El puerto por omisión sigue siendo 27017.

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

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

La API de flujos PHP ya no se utiliza para la comunicación por socket. La opción "connectTimeoutMS" de la URI es ahora por omisión 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 diagonales 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 específicos:

<?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 específicos, donde el nombre de usuario o la contraseña incluye caracteres especiales (por ejemplo @, :, %). En el ejemplo siguiente, la cadena de contraseña myp@ss:w%rd ha sido manualmente escapada; sin embargo, rawurlencode() también puede ser utilizada para escapar los componentes de la 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
8 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
8 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