Definición
MongoDB\Client::__construct()Construye un nuevo
Clientinstancia.function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
Parámetros
$uri: cadenaLa cadena de conexión de MongoDB. Consulte Cadenas de conexión en el manual de MongoDB para obtener más información.
El valor predeterminado es
"mongodb://127.0.0.1:27017"si no se especifica.Cualquier carácter especial en los componentes URI debe codificarse de acuerdo con RFC 3986Esto es especialmente relevante para el nombre de usuario y la contraseña, que a menudo pueden incluir caracteres especiales
@como,:%o. Al conectarse mediante un socket de dominio Unix, la ruta del socket puede contener caracteres especiales, como barras, y debe codificarse. La función rawurlencode() puede utilizarse para codificar las partes que componen el URI.$uriOptions: matrizEspecifica opciones adicionales de URI, como credenciales de autenticación o parámetros de cadena de consulta. Las opciones especificadas en
$uriOptionsprevalecen sobre cualquier opción análoga presente en la$uricadena y no necesitan codificarse según 3986RFC.Consulte la documentación de la extensión MongoDB\Driver\Manager::__construct() para obtener una lista de las opciones compatibles.
$driverOptions: matrizEspecifica opciones específicas del controlador PHP. Además de las opciones de controlador admitidas por la extensión, la biblioteca también permite especificar un mapa de tipos predeterminado para aplicarlo a los cursores que crea.
NombreTipoDescripcióncifrado automático
arreglo
Opciones para configurar el cifrado a nivel de campo del lado del cliente en el controlador. Consulte la documentación de la extensión para obtener una lista de las opciones de cifrado compatibles.
Si se
MongoDB\Clientproporciona un para lakeyVaultClientopción, se desempaquetará en un MongoDB\Driver\Manager para la extensión.Nuevo en la versión 1.6.
controlador
arreglo
Metadatos adicionales del controlador que se transmitirán al protocolo de enlace del servidor. Se trata de una matriz que contiene los campos de cadena
name,versionyplatform. Por ejemplo:[ 'name' => 'my-driver', 'version' => '1.2.3-dev', 'platform' => 'some-platform', ] Esta función está diseñada principalmente para controladores personalizados y ODM que deseen identificarse ante el servidor con fines de diagnóstico. Las aplicaciones que deseen identificarse deben usar la opción URI
appNameen lugar de esta opción.Nuevo en la versión 1.7.
servidorAPI
Se utiliza para declarar una versión de API en el cliente. Consulte la página API estable en el manual del servidor para obtener más información.
Nuevo en la versión 1.9.
typeMap
arreglo
Mapa de tipo por defecto para aplicar a los cursores, que determina cómo se convierten los documentos BSON a valores de PHP. La librería utiliza el siguiente mapa de tipos por defecto:
[ 'array' => 'MongoDB\Model\BSONArray', 'document' => 'MongoDB\Model\BSONDocument', 'root' => 'MongoDB\Model\BSONDocument', ] constructorEncoder
MongoDB\Codec\Encoder
Codificador que se usará para los generadores de consultas y agregaciones. Si no se configura, esta opción toma como valor predeterminado una nueva instancia de la clase
MongoDB\Builder\BuilderEncoder.Nuevo en la versión 1.21.
permitir_nombre_de_host_inválido
booleano
Desactiva la validación del nombre de host si es
true. El valor predeterminado esfalse.Permitir nombres de host no válidos puede exponer al controlador a un ataque del tipo "man-in-the-middle".
Obsoleto desde la 1.6 versión: Esta opción ha quedado obsoleta. Utilice la
tlsAllowInvalidHostnamesopción URI en su lugar.ca_dir
string
Ruta a un directorio de certificados con el algoritmo hash correcto. Se utilizará el almacén de certificados del sistema por defecto.
Vuelve a la opción de contexto SSL
capathobsoleta si no se especifica.archivo ca
string
Ruta a un archivo de autoridad de certificación. Se utilizará el almacén de certificados del sistema de forma predeterminada.
Vuelve a la opción de contexto SSL
cafileobsoleta si no se especifica.Obsoleto desde la 1.6 versión: Esta opción ha quedado obsoleta. Utilice la
tlsCAFileopción URI en su lugar.archivo crl
string
Ruta a un archivo de lista de revocación de certificados.
archivo pem
string
Ruta a un certificado codificado PEM para utilizar en la autenticación del cliente.
Vuelve a la opción de contexto SSL
local_certobsoleta si no se especifica.Obsoleto desde la 1.6 versión: Esta opción ha quedado obsoleta. Utilice la
tlsCertificateKeyFileopción URI en su lugar.pem_pwd
string
Frase de contraseña para el certificado codificado PEM (si corresponde).
Vuelve a la opción de contexto SSL
passphraseobsoleta si no se especifica.Obsoleto desde la 1.6 versión: Esta opción ha quedado obsoleta. Utilice la
tlsCertificateKeyFilePasswordopción URI en su lugar.validación de certificado débil
booleano
Desactiva la validación del certificado
true. El valor predeterminado esfalse.Vuelve a la opción de contexto SSL
allow_self_signedobsoleta si no se especifica.Obsoleto desde la 1.6 versión: Esta opción ha quedado obsoleta. Utilice la
tlsAllowInvalidCertificatesopción URI en su lugar.context
resource
Opciones de contexto SSL que se usarán como respaldo para otras opciones del controlador (según se especifique). Tenga en cuenta que el controlador no consulta el contexto de flujo predeterminado.
Esta opción se admite por compatibilidad con versiones anteriores, pero debe considerarse obsoleta.
Errores/Excepciones
MongoDB\Exception\InvalidArgumentException para errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\InvalidArgumentException para errores relacionados con el análisis de parámetros u opciones en el nivel de extensión.
MongoDB\Driver\Exception\RuntimeException para otros errores en el nivel de extensión (por ejemplo, errores de conexión).
Comportamiento
Un MongoDB\Driver\Manager se construye internamente. Según la especificación de detección y monitorización de servidores, MongoDB\Driver\Manager::__construct() no realiza operaciones de E/S. Las conexiones se inicializan cuando se solicita, al ejecutarse la primera operación.
Ejemplos
Conexión a un servidor independiente
Si no especifica un $uri valor, el controlador se conecta a un servidor independiente en mongod a 127.0.0.1 través del 27017 puerto. Para conectarse a otro servidor, pase la cadena de conexión correspondiente como primer parámetro al crear la Client instancia:
$client = new MongoDB\Client('mongodb://mongodb-deployment:27017');
Conexión a un set de réplicas
El siguiente ejemplo demuestra cómo conectarse a un conjunto de réplicas con una preferencia de lectura personalizada:
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet', [ 'readPreference' => 'secondaryPreferred', ] );
Conexión con SSL y autenticación
El siguiente ejemplo demuestra cómo conectarse a un conjunto de réplicas de MongoDB con SSL y autenticación, como se utiliza para MongoDB Atlas:
$client = new MongoDB\Client( 'mongodb://myUsername:myPassword@rs1.example.com,rs2.example.com/?ssl=true&replicaSet=myReplicaSet&authSource=admin' );
Alternativamente, las credenciales de autenticación y los parámetros URI se pueden especificar en el parámetro $uriOptions del constructor:
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/' [ 'username' => 'myUsername', 'password' => 'myPassword', 'ssl' => true, 'replicaSet' => 'myReplicaSet', 'authSource' => 'admin', ], );
El controlador admite opciones SSL adicionales, que pueden especificarse en el $driverOptions parámetro del constructor. Estas opciones se describen en la documentación de MongoDB\Driver\Manager::__construct().
Especificación de un mapa de tipos personalizado
De forma predeterminada, la biblioteca PHP de MongoDB deserializa documentos BSON y arrays como MongoDB\Model\BSONDocument MongoDB\Model\BSONArray objetos y, respectivamente. El siguiente ejemplo muestra cómo hacer que la biblioteca deserialice todo como un array PHP, como se hacía en la mongo extensión heredada.
$client = new MongoDB\Client( null, [], [ 'typeMap' => [ 'root' => 'array', 'document' => 'array', 'array' => 'array', ], ] );
Ver también
Formato de URI de cadena de conexión en el manual de MongoDB
Especificación dedetección y monitorización de servidores