(mongodb >=1.0.0)
MongoDB\Driver\Manager::__construct — Crea un nuevo Manager MongoDB
$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óntls
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»).
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
.
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.
|
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
Para los mecanismos de autenticación que no admiten la noción de base de datos
(por ejemplo, GSSAPI), esto debería ser
|
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 |
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 |
loadBalanced | bool |
Especifica si el controlador se conecta a un clúster de MongoDB a través
de un balanceador de carga. Si |
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
Si se especifica, la antigüedad máxima debe ser un entero signado de 32 bits
mayor o igual a
|
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 |
readPreferenceTags | array |
Corresponde a la opción
|
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 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 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 |
socketCheckIntervalMS | int |
Si un socket no ha sido utilizado recientemente, el controlador debe verificarlo a través
de una comando |
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 |
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 |
tls | bool |
Inicializa la conexión con TLS/SSL si |
tlsAllowInvalidCertificates | bool |
Especifica si el controlador debe generar un error cuando el certificado
TLS del servidor es inválido. Por omisión a 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 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 |
tlsDisableCertificateRevocationCheck | bool |
Si |
tlsDisableOCSPEndpointCheck | bool |
Si |
tlsInsecure | bool |
Relaja las restricciones TLS tanto como sea posible. Especificar 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 |
wTimeoutMS | int|string |
Corresponde a la opción
Si se especifica, |
zlibCompressionLevel | int |
Especifica el nivel de compresión a utilizar para el compresor zlib. Esta
opción no tiene efecto si |
driverOptions
Opción | Tipo | Descripción | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
autoEncryption | array |
Aporta opciones para activar el cifrado del lado del cliente a nivel de los campos.
Las siguientes opciones son admitidas:
|
||||||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||||||
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
|
||||||||||||||||||||||||||||||
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. |
Versión | Descripción |
---|---|
PECL mongodb 2.0.0 |
La opción de URI
La opción de URI
La opción de URI
La opción de URI
La opción de controlador
La opción de controlador
La opción de controlador
La opción de controlador
La opción de controlador
La opción de controlador |
PECL mongodb 1.16.0 |
El proveedor AWS KMS para el cifrado del lado del cliente acepta ahora una
opción
Añadir
Si se especifica un documento vacío para el proveedor KMS |
PECL mongodb 1.15.0 |
Si se especifica un documento vacío para el proveedor KMS |
PECL mongodb 1.14.0 |
Añadir las opciones de cifrado del lado del cliente |
PECL mongodb 1.13.0 |
Añadir las opciones de URI |
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 |
PECL mongodb 1.11.0 |
Añadir la opción de URI |
PECL mongodb 1.10.0 |
Añadir la opción de controlador
Azure y GCP son ahora admitidos como proveedores KMS para
el cifrado del lado del cliente y pueden ser configurados en el campo
|
PECL mongodb 1.8.0 |
Añadir las opciones de URI
Añadir la opción de controlador |
PECL mongodb 1.7.0 |
Añadir la opción de controlador
Especificar cualquier opción SSL o TLS a través del parámetro
|
PECL mongodb 1.6.0 |
Añadir las opciones de URI
La opción de URI
Especificar una opción de URI SSL o TLS a través de la cadena de conexión o
el parámetro |
PECL mongodb 1.5.0 |
|
PECL mongodb 1.4.0 |
Añadir las opciones de URI |
PECL mongodb 1.3.0 |
El argumento |
PECL mongodb 1.2.0 |
El argumento
Añadir la opción de URI
Añadir las opciones de controlador
La API de flujo PHP ya no es utilizada para la comunicación por socket. La opción
|
PECL mongodb 1.1.0 |
El argumento |
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",
]
);
?>