PHP 8.4.1 Released!

MongoDB\Driver\Manager::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Manager::__constructCria um novo gerenciador MongoDB

Descrição

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

Constrói um novo objeto MongoDB\Driver\Manager com as opções especificadas.

Nota: De acordo com a » Especificação de descoberta e monitoramento de servidor, esse construtor não executa E/S. As conexões serão inicializadas sob demanda, quando a primeira operação for executada.

Nota: Ao especificar qualquer opção de URI SSL ou TLS por meio da string de conexão ou do parâmetro uriOptions, a extensão habilitará implicitamente o TLS para suas conexões. Para evitar isso, a opção tls deve ser desabilitada explicitamente ou nenhuma opção de TLS deve ser especificada.

Nota: Em plataformas Unix, a extensão é sensível a scripts que usam a chamada de sistema fork() sem chamar também exec(). Os usuários são aconselhados a não reusar instâncias de MongoDB\Driver\Manager em um processo filho bifurcado.

Parâmetros

uri

Uma URI de conexão » mongodb://:

mongodb://[usuário:senha@]servidor1[:porta1][,servidor2[:porta2],...[,servidorN[:portaN]]][/[BD_autenticacao_padrão][?opções]]

O padrão é "mongodb://127.0.0.1:27017" se não especificado.

Para obter detalhes sobre as opções de URI suportadas, consulte » Opções de string de conexão no manual do MongoDB. » Opções de pool de conexões não são suportadas, pois a extensão não implementa pools de conexões.

O uri é um URL, portanto, quaisquer caracteres especiais em seus componentes precisam ser codificados em URL de acordo com a » RFC 3986. Isto é particularmente relevante para o nome de usuário e a senha, que muitas vezes podem incluir caracteres especiais como @, : ou %. Ao conectar através de um soquete de domínio Unix, o caminho do soquete pode conter caracteres especiais, como barras, e deve ser codificado. A função rawurlencode() pode ser usada para codificar partes constituintes do URI.

O componente defaultAuthDb pode ser usado para especificar o nome do banco de dados associado às credenciais do usuário; entretanto, a opção de URI authSource terá prioridade se especificada. Se nem defaultAuthDb nem authSource forem especificados, o banco de dados admin será usado por padrão. O componente defaultAuthDb não tem efeito na ausência de credenciais do usuário.

uriOptions

» Opções de string de conexão adicionais, que substituirão quaisquer opções com o mesmo nome no parâmetro uri.

Opções de URI
Opção Tipo Descrição
appname string

O MongoDB 3.4+ tem a capacidade de anotar conexões com metadados fornecidos pelo cliente conectado. Esses metadados são incluídos nos registros do servidor ao estabelecer uma conexão e também incluídos nos registros de consultas lentas quando a perfilagem do banco de dados está habilitada.

Esta opção pode ser usada para especificar um nome de aplicação, que será incluído nos metadados. O valor não pode exceder 128 caracteres.

authMechanism string

O mecanismo de autenticação que o MongoDB usará para autenticar a conexão. Para obter detalhes adicionais e uma lista de valores suportados, consulte » Opções de autenticação no manual do MongoDB.

authMechanismProperties array

Propriedades do mecanismo de autenticação selecionado. Para obter detalhes adicionais e uma lista de propriedades suportadas, consulte a » Especificação de autenticação do driver.

Nota: Quando não especificada na string URI, esta opção é expressa como um array de pares chave/valor. As chaves e valores neste array devem ser strings.

authSource string

O nome do banco de dados associado às credenciais do usuário. O padrão é o componente de banco de dados do URI de conexão ou o banco de dados admin se ambos não forem especificados.

Para mecanismos de autenticação que delegam o armazenamento de credenciais a outros serviços (por exemplo, GSSAPI), deve ser "$external".

canonicalizeHostname bool

Se true, o driver resolverá o nome real do servidor para o endereço IP antes de autenticar via SASL. Algumas camadas GSSAPI subjacentes já fazem isso, mas a funcionalidade pode estar desativada em suas configurações (por exemplo, krb.conf). O padrão é false.

Esta opção é um sinônimo defasado para a propriedade "CANONICALIZE_HOST_NAME" da opção "authMechanismProperties" da URI.

compressors string

Uma lista priorizada e delimitada por vírgulas de compressores que o cliente deseja usar. As mensagens só serão compactadas se o cliente e o servidor compartilharem algum compressor em comum, e o compressor usado em cada direção dependerá da configuração individual do servidor ou driver. Consulte a » Especificação de compactação do driver para obter mais informações.

connectTimeoutMS int

O tempo em milissegundos para tentar uma conexão antes de atingir o tempo limite. O padrão é 10000 milissegundos.

directConnection bool

Esta opção pode ser usada para controlar o comportamento de descoberta do conjunto de réplicas quando apenas um único servidor é fornecido na string de conexão. Por padrão, fornecer um único membro na string de conexão estabelecerá uma conexão direta ou descobrirá membros adicionais dependendo se a opção de URI "replicaSet" estiver omitida ou presente, respectivamente. Especifique false para forçar a ocorrência da descoberta (se "replicaSet" for omitido) ou especifique true para forçar uma conexão direta (se "replicaSet" estiver presente).

gssapiServiceName string

Define o nome do serviço Kerberos ao conectar-se a instâncias MongoDB Kerberizadas. Este valor deve corresponder ao nome do serviço definido nas instâncias do MongoDB (ou seja, parâmetro do servidor » saslServiceName). O padrão é "mongodb".

Esta opção é um sinônimo defasado para a propriedade "SERVICE_NAME" da opção "authMechanismProperties" do URI.

heartbeatFrequencyMS int

Especifica o intervalo em milissegundos entre as verificações do driver da topologia MongoDB, contado do final da verificação anterior até o início da próxima. O padrão é 60000 milissegundos.

Pela » Especificação de descoberta e monitoramento de servidor, esse valor não pode ser inferior a 500 milissegundos.

journal bool

Corresponde ao parâmetro journal da preocupação de gravação padrão. Se for igual a true, as gravações exigirão o reconhecimento do MongoDB de que a operação foi gravada no diário. Para obter detalhes, consulte MongoDB\Driver\WriteConcern.

loadBalanced bool

Especifica se o driver está se conectando a um cluster MongoDB por meio de um balanceador de carga. Se for igual a true, o driver só pode se conectar a um único servidor (especificado pela string de conexão ou pela pesquisa SRV), a opção de URI "directConnection" não pode ser true, e a opção "replicaSet" do URI deve ser omitida. O padrão é false.

localThresholdMS int

O tamanho em milissegundos da janela de latência para selecionar entre várias instâncias adequadas do MongoDB ao resolver uma preferência de leitura. O padrão é 15 milissegundos.

maxStalenessSeconds int

Corresponde ao "maxStalenessSeconds" da preferência de leitura. Especifica, em segundos, o quão inativo um secundário pode ficar antes que o cliente pare de usá-lo para operações de leitura. Por padrão, não há inatividade máxima e os clientes não considerarão o atraso do secundário ao escolher para onde direcionar uma operação de leitura. Para obter detalhes, consulte MongoDB\Driver\ReadPreference.

Se especificada, a inatividade máxima deve ser um número inteiro com sinal de 32 bits maior ou igual a MongoDB\Driver\ReadPreference::SMALLEST_MAX_STALENESS_SECONDS (ou seja, 90 segundos).

password string A senha do usuário que está sendo autenticado. Esta opção é útil se a senha contiver caracteres especiais, que de outra forma precisariam ser codificados em URL para o URI de conexão.
readConcernLevel string Corresponde ao parâmetro level da preocupação de leitura. Especifica o nível de isolamento de leitura. Para obter detalhes, consulte MongoDB\Driver\ReadConcern.
readPreference string

Corresponde ao parâmetro mode da preferência de leitura. O padrão é "primary". Para obter detalhes, consulte MongoDB\Driver\ReadPreference.

readPreferenceTags array

Corresponde ao parâmetro tagSets da preferência de leitura. Os conjuntos de etiquetas permitem direcionar operações de leitura para membros específicos de um conjunto de réplicas. Para obter detalhes, consulte MongoDB\Driver\ReadPreference.

Nota: Quando não especificada na string URI, esta opção é expressa como um array consistente com o formato esperado por MongoDB\Driver\ReadPreference::__construct().

replicaSet string

Especifica o nome do conjunto de réplicas.

retryReads bool

Especifica se o driver deve ou não repetir automaticamente determinadas operações de leitura que falham devido a erros transitórios de rede ou eleições de conjunto de réplicas. Esta funcionalidade requer o MongoDB 3.6+. O padrão é true.

Consulte a » Especificação de leituras repetíveis para mais informações.

retryWrites bool

Especifica se o driver deve ou não repetir automaticamente determinadas operações de gravação que falham devido a erros transitórios de rede ou eleições de conjunto de réplicas. Esta funcionalidade requer o MongoDB 3.6+. O padrão é true.

Consutle » Gravações Repetíveis no manual do MongoDB para obter mais informações.

safe bool

Se true, especifica 1 para o parâmetro w da preocupação de gravação padrão. Se false, 0 será especificado. Para obter detalhes, consulte MongoDB\Driver\WriteConcern.

Esta opção está defasada e não deve ser usada.

serverSelectionTimeoutMS int

Especifica quanto tempo, em milissegundos, deve-se bloquear para seleção de servidor antes de lançar uma exceção. O padrão é 30000 milissegundos.

serverSelectionTryOnce bool

Quando true, instrui o driver a verificar a implantação do MongoDB exatamente uma vez após a falha na seleção do servidor e, em seguida, selecionar um servidor ou gerar um erro. Quando false, o driver bloqueia e procura um servidor até o valor "serverSelectionTimeoutMS". O padrão é true.

socketCheckIntervalMS int

Se um soquete não tiver sido usado recentemente, o driver precisará verificá-lo através do comando hello antes de usá-lo para qualquer operação. O padrão é 5000 milissegundos.

socketTimeoutMS int

O tempo em milissegundos para tentar enviar ou receber em um soquete antes de atingir o tempo limite. O padrão é 300000 milissegundos (ou seja, cinco minutos).

srvMaxHosts int

O número máximo de resultados de SRV a serem selecionados aleatoriamente ao preencher inicialmente a lista de valores iniciais ou, durante a sondagem de SRV, ao incluir novos servidores na topologia. O padrão é 0 (ou seja, sem máximo).

srvServiceName string

O nome do serviço a ser usado para consulta de SRV na descoberta inicial da lista de valores iniciais de DNS e na sondagem de SRV. O padrão é "mongodb".

ssl bool

Inicia a conexão com TLS/SSL se for igual a true. O padrão é false.

Esta opção é um apelido defasado para a opção de URI "tls".

tls bool

Inicia a conexão com TLS/SSL se for igual a true. O padrão é false.

tlsAllowInvalidCertificates bool

Especifica se o driver deve ou não apresentar erro quando o certificado TLS do servidor for inválido. O padrão é false.

Aviso

Desabilitar a validação de certificado cria uma vulnerabilidade.

tlsAllowInvalidHostnames bool

Especifica se o driver deve ou não apresentar erro quando há uma incompatibilidade entre o nome do host do servidor e o nome do host especificado pelo certificado TLS. O padrão é false.

Aviso

Desabilitar a validação de certificado cria uma vulnerabilidade. Permitir nomes de servidores inválidos pode expor o driver a um » ataque MITM.

tlsCAFile string

Caminho para arquivo com uma única autoridade de certificação ou um pacote de autoridades de certificação a ser considerado confiável ao fazer uma conexão TLS. O armazenamento de certificados do sistema será usado por padrão.

tlsCertificateKeyFile string

Caminho para o arquivo de certificado do cliente ou arquivo de chave privada do cliente; caso ambos sejam necessários, os arquivos deverão ser concatenados.

tlsCertificateKeyFilePassword string

Senha para descriptografar a chave privada do cliente (ou seja, opção de URI "tlsCertificateKeyFile") a ser usada para conexões TLS.

tlsDisableCertificateRevocationCheck bool

Se true, o driver não tentará verificar o status de revogação do certificado (por exemplo, OCSP, CRL). O padrão é false.

tlsDisableOCSPEndpointCheck bool

Se true, o driver não tentará contactar um ponto de extremidade de um respondedor OCSP, se necessário (ou seja, uma resposta OCSP não é grampeada). O padrão é false.

tlsInsecure bool

Relaxa as restrições de TLS tanto quanto possível. Especificar true para esta opção tem o mesmo efeito que especificar true para as opções de URI "tlsAllowInvalidCertificates" e "tlsAllowInvalidHostnames". O padrão é false.

Aviso

Desabilitar a validação de certificado cria uma vulnerabilidade. Permitir nomes de servidores inválidos pode expor o driver a um » ataque MITM.

username string O nome do usuário que está sendo autenticado. Esta opção é útil se o nome de usuário contiver caracteres especiais, que de outra forma precisariam ser codificados em URL para o URI de conexão.
w int|string

Corresponde ao parâmetro w da preocupação de gravação padrão. Para obter detalhes, consulte MongoDB\Driver\WriteConcern.

wTimeoutMS int|string

Corresponde ao parâmetro wtimeout da preocupação de gravação padrão. Especifica um limite de tempo, em milissegundos, para a preocupação de gravação. Para obter detalhes, consulte MongoDB\Driver\WriteConcern.

Se especificado, wTimeoutMS deve ser um número inteiro de 32 bits sem sinal maior ou igual a zero.

zlibCompressionLevel int

Especifica o nível de compactação a ser usado para o compressor zlib. Esta opção não tem efeito se zlib não estiver incluído na opção URI "compressors". Consulte a » Especificação de Compactação de Driver para obter mais informações.

driverOptions

Opções do Driver
Opção Tipo Descrição
allow_invalid_hostname bool

Desativa a validação do nome do host se true. O padrão é false.

Permitir nomes de servidores inválidos pode expor o driver a um » ataque MITM.

Esta opção é um sinônimo defasado para a opção de URI "tlsAllowInvalidHostnames".

autoEncryption array

Fornece opções para ativar a criptografia automática em nível de campo do lado do cliente.

Nota:

A criptografia automática é um recurso exclusivo da versão Enterprise que se aplica apenas a operações em uma coleção. A criptografia automática não é suportada para operações em um banco de dados ou visualização, e as operações que não são ignoradas resultarão em erro (consulte » libmongocrypt: lista de permissões de criptografia automática). Para ignorar a criptografia automática para todas as operações, bypassAutoEncryption deve ser definido como true.

A criptografia automática exige que o usuário autenticado tenha a ação de privilégio » listCollections.

A criptografia/descriptografia explícita e a descriptografia automática são um recurso da versão Community. O driver ainda pode descriptografar automaticamente quando bypassAutoEncryption for igual a true.

As seguintes opções são suportadas:

Opções para criptografia automática
Opção Tipo Descrição
keyVaultClient MongoDB\Driver\Manager O Manager usado para rotear consultas de chave de dados para um cluster MongoDB separado. Por padrão, o Manager e o cluster atuais são usados.
keyVaultNamespace string Um namespace totalmente qualificado (por exemplo, "nomeDoBancoDados.nomeDaColecao") denotando a coleção que contém todas as chaves de dados usadas para criptografia e descriptografia. Esta opção é obrigatória.
kmsProviders array

Um documento contendo a configuração de um ou mais provedores KMS, que são usados para criptografar chaves de dados. Os provedores compatíveis incluem "aws", "azure", "gcp", "kmip" e "local" e pelo menos um deve ser especificado.

Se um documento vazio for especificado para "aws", "azure", ou "gcp", o driver tentará configurar o provedor usando » Credenciais Automáticas.

O formato para "aws" é o seguinte:

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

O formato para "azure" é o seguinte:

azure: {
    tenantId: <string>,
    clientId: <string>,
    clientSecret: <string>,
    identityPlatformEndpoint: <string opcional> // O padrão é "login.microsoftonline.com"
}

O formato para "gcp" é o seguinte:

gcp: {
    email: <string>,
    privateKey: <string base64>|<MongoDB\BSON\Binary>,
    endpoint: <string opcional> // O padrão é "oauth2.googleapis.com"
}

O formato para "kmip" é o seguinte:

kmip: {
    endpoint: <string>
}

O formato para "local" é o seguinte:

local: {
    // Chave mestra de 96 bytes usada para criptografar/descriptografar chaves de dados
    key: <string base64>|<MongoDB\BSON\Binary>
}
tlsOptions array

Um documento contendo a configuração TLS para um ou mais provedores KMS. Os provedores suportados incluem "aws", "azure", "gcp" e "kmip". Todos os provedores suportam as seguintes opções:

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

Mapa de espaços de nomes de coleção para um esquema JSON local. Isso é usado para configurar a criptografia automática. Consulte » Regras de criptografia automática no manual do MongoDB para obter mais informações. É um erro especificar uma coleção em schemaMap e em encryptedFieldsMap ao mesmo tempo.

Nota: Fornecer um schemaMap oferece mais segurança do que confiar em esquemas JSON obtidos do servidor. Ele protege contra um servidor malicioso que anuncia um esquema JSON falso, que poderia induzir o cliente a enviar dados não criptografados que deveriam estar criptografados.

Nota: Os esquemas fornecidos no schemaMap aplicam-se apenas à configuração da criptografia automática para criptografia do lado do cliente. Outras regras de validação no esquema JSON não serão aplicadas pelo driver e resultarão em erro.

bypassAutoEncryption bool Se true, mongocryptd não será executado automaticamente. Isso é usado para desativar a criptografia automática. O padrão é false.
bypassQueryAnalysis bool

Se true, a análise automática dos comandos enviados será desativada e o mongocryptd não será executado automaticamente. Isso permite o caso de uso de criptografia explícita para consultar campos indexados sem exigir a biblioteca crypt_shared licenciada pela versão Enterprise ou o processo mongocryptd. O padrão é false.

encryptedFieldsMap array|object

Mapa de espaçoes de nomes de coleção para um documento encryptedFields. Isso é usado para configurar a criptografia consultável. Consulte » Criptografia de campo e consultabilidade no manual do MongoDB para obter mais informações. É um erro especificar uma coleção em encryptedFieldsMap e em schemaMap ao mesmo tempo.

Nota: Fornecer um encryptedFieldsMap fornece mais segurança do que confiar em um encryptedFields obtido do servidor. Ele protege contra um servidor malicioso que anuncia um encryptedFields falso.

extraOptions array

As extraOptions estão relacionadas ao processo mongocryptd. As seguintes opções são suportadas:

  • mongocryptdURI (string): URI para conectar-se a um processo mongocryptd existente. O padrão é "mongodb://localhost:27020".
  • mongocryptdBypassSpawn (bool): Se true, evita que o driver execute o mongocryptd. O padrão é false.
  • mongocryptdSpawnPath (string): Caminho absoluto para procurar o binário mongocryptd. O padrão é uma string vazia e consulta os caminhos do sistema.
  • mongocryptdSpawnArgs (array): Array de argumentos de string para passar para mongocryptd durante a execução. O padrão é ["--idleShutdownTimeoutSecs=60"].
  • cryptSharedLibPath (string): Caminho absoluto para a biblioteca compartilhada crypt_shared. O padrão é uma string vazia e consulta os caminhos do sistema.
  • cryptSharedLibRequired (bool): Se true, exige que o driver carregue crypt_shared. O padrão é false.

Consulte a » Especificação de criptografia do lado do cliente para obter mais informações.

Nota: A criptografia automática é um recurso exclusivamente da versçao "enterprise" que se aplica apenas a operações em uma coleção. A criptografia automática não é suportada para operações em um banco de dados ou visualização, e as operações que não são ignoradas resultarão em erro. Para ignorar a criptografia automática para todas as operações, defina bypassAutoEncryption=true em autoEncryption. Para obter mais informações sobre operações permitidas, consulte » Especificação de criptografia do lado do cliente.

ca_dir string

Caminho para um diretório de certificado com hash correto. O armazenamento de certificados do sistema será usado por padrão.

ca_file string

Caminho para arquivo com uma única autoridade de certificação ou um pacote de autoridades de certificação a ser considerado confiável ao fazer uma conexão TLS. O armazenamento de certificados do sistema será usado por padrão.

Esta opção é um sinônimo defasado para a opção de URI "tlsCAFile".

context resource

As opções de contexto SSL a serem usadas como substitutas se uma opção de driver ou sua opção de URI equivalente, se houver, não for especificada. Observe que a extensão não consulta o contexto de fluxo padrão (ou seja, stream_context_get_default()). As seguintes opções de contexto são suportadas:

Opções de contexto SSL substitutas
Opção de driver Opção de contexto (substituta)
ca_dir capath
ca_file cafile
pem_file local_cert
pem_pwd passphrase
weak_cert_validation allow_self_signed

Esta opção é suportada para compatibilidade com versões anteriores, mas deve ser considerada obsoleta.

crl_file string Caminho para um arquivo de lista de certificados revogados.
disableClientPersistence bool

Se true, este gerenciador usará um novo cliente libmongoc, que não será persistido ou compartilhado com outros objetos do gerenciador. Quando este objeto de gerenciador for liberado, seu cliente será destruído e todas as conexões serão fechadas. O padrão é false.

Nota: Geralmente, desabilitar a persistência do cliente não é recomendado.

driver array

Permite que uma biblioteca de nível superior anexe seus próprios metadados ao "handshake" com o servidor. Por padrão, a extensão envia seu próprio nome, versão e plataforma (ou seja, versão PHP) nesta comunicação inicial. Strings podem ser especificadas para as chaves "name", "version" e "platform" deste array e serão anexadas ao respectivos campos no documento de "handshake".

Nota: As informações de "handshake" são limitadas a 512 bytes. A extensão truncará os dados do "handshake" para caber nesta sequência de 512 bytes. Bibliotecas de nível superior são encorajadas a manter seus próprios metadados concisos.

pem_file string

Caminho para um certificado codificado em PEM a ser usado para autenticação do cliente.

Esta opção é um sinônimo defasado para a opção de URI "tlsCertificateKeyFile".

pem_pwd string

Senha para o certificado codificado em PEM (se aplicável).

Esta opção é um sinônimo defasado para a opção de URI "tlsCertificateKeyFilePassword".

serverApi MongoDB\Driver\ServerApi

Esta opção é usada para declarar uma versão da API do servidor para o gerenciador. Se omitida, nenhuma versão da API será declarada.

weak_cert_validation bool

Desativa a validação do certificado se for igual a true. O padrão é false

Esta opção é um sinônimo defasado para a opção de URI "tlsAllowInvalidCertificates".

Erros/Exceções

Registro de Alterações

Versão Descrição
PECL mongodb 1.16.0

O provedor AWS KMS para criptografia do lado do cliente agora aceita uma opção "sessionToken", que pode ser usada para autenticação com credenciais temporárias da AWS.

Aicionada a opção "tlsDisableOCSPEndpointCheck" para o campo "tlsOptions" da opção "autoEncryption" do driver.

Se um documento vazio for especificado para o provedor KMS "azure" ou "gcp", o driver tentará configurar o provedor usando » Credenciais Automáticas.

PECL mongodb 1.15.0

Se um documento vazio for especificado para o provedor KMS "aws", o driver tentará configurar o provedor usando » Credenciais Automáticas.

PECL mongodb 1.14.0

Adicionadas as opções de criptografia automática "bypassQueryAnalysis" e "encryptedFieldsMap". Opções adicionais pertencentes a crypt_shared agora são suportadas na opção de criptografia automática "extraOptions".

PECL mongodb 1.13.0

Adicionadas as opções de URI "srvMaxHosts" e "srvServiceName".

PECL mongodb 1.12.0

KMIP agora é suportado como um provedor KMS para criptografia do lado do cliente e pode ser configurado no campo "kmsProviders" da opção de driver "autoEncryption". Além disso, as opções de TLS para provedores KMS agora podem ser configuradas no campo "tlsOptions" da opção do driver "autoEncryption".

PECL mongodb 1.11.0

Adicionada a opção de URI "loadBalanced".

PECL mongodb 1.10.0

Adicionada a opção de driver "disableClientPersistence".

Azure e GCP agora são suportados como provedores KMS para criptografia do lado do cliente e podem ser configurados no campo "kmsProviders" da opção de driver "autoEncryption". Strings codificadas em Base64 agora são aceitas como uma alternativa ao MongoDB\BSON\Binary para opções dentro de "kmsProviders".

PECL mongodb 1.8.0

Adicionadas as opções de URI "directConnection", "tlsDisableCertificateRevocationCheck" e "tlsDisableOCSPEndpointCheck".

Adicionada a opção de driver "driver".

PECL mongodb 1.7.0

Adicionada a opção de driver "autoEncryption".

Especificar qualquer opção SSL ou TLS por meio do parâmetro driverOptions agora ativará implicitamente o TLS, como é feito para as opções de URI correspondentes.

PECL mongodb 1.6.0

Adicionadas as opções de URI "retryReads", "tls", "tlsAllowInvalidCertificates", "tlsAllowInvalidHostnames", "tlsCAFile", "tlsCertificateKeyFile", "tlsCertificateKeyFilePassword" e "tlsInsecure".

A opção de URI "retryWrites" tem como padrão true.

Especificar qualquer opção de URI SSL ou TLS por meio da string de conexão ou do parâmetro uriOptions agora ativará implicitamente o TLS, a menos que ssl ou tls seja false. O TLS não está implicitamente habilitado para nenhuma opção no parâmetro driverOptions, que permanece inalterado em relação às versões anteriores.

PECL mongodb 1.5.0

"wtimeoutMS" agora é sempre validado e aplicado à preocupação de gravação. Anteriormente, a opção era ignorada se "w" fosse <= 1, pois o tempo limite só se aplica à replicação.

PECL mongodb 1.4.0

Adicionadas as opções de URI "compressors", "retryWrites" e "zlibCompressionLevel".

PECL mongodb 1.3.0

O parâmetro uriOptions agora aceita as opções "authMechanism" e "authMechanismProperties". Anteriormente, estas opções eram suportadas somente no parâmetro uri.

PECL mongodb 1.2.0

O padrão para o parâmetro uri passa a ser "mongodb://127.0.0.1/". A porta padrão permanece 27017.

Adicionada a opção de URI "appname".

Adicionadas as opções de driver "allow_invalid_hostname", "ca_file", "ca_dir", "clr_file", "pem_file", "pem_pwd" e "weak_cert_validation".

A API de Fluxos do PHP não é mais usada para comunicação de soquete. A opção de URI "connectTimeoutMS" agora tem como padrão 10 segundos em vez de default_socket_timeout nas versões anteriores. Além disso, a extensão não suporta mais todas as opções de contexto SSL através da opção de driver "context".

PECL mongodb 1.1.0

O parâmetro uri passa a ser opcional com o padrão de "mongodb://localhost:27017/".

Exemplos

Exemplo #1 Exemplos básicos de MongoDB\Driver\Manager::__construct()

Conexão a um nó independente do MongoDB:

<?php

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

?>

Conectando-se ao nó independente do MongoDB por meio de um soquete de domínio Unix. O caminho do soquete pode incluir caracteres especiais como barras e deve ser codificado com rawurlencode().

<?php

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

?>

Conectando-se a um conjunto de réplicas:

<?php

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

?>

Conectando-se a um cluster fragmentado (ou seja, uma ou mais instâncias do mongos):

<?php

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

?>

Conectando-se ao MongoDB com credenciais de autenticação para um usuário e banco de dados específicos:

<?php

$manager
= new MongoDB\Driver\Manager("mongodb://meuUsuario:minhaSenha@example.com/?authSource=nomeBancoDeDados");

?>

Conectando-se ao MongoDB com credenciais de autenticação para um usuário e banco de dados específicos, onde o nome de usuário ou senha inclui caracteres especiais (por exemplo, @, :, %). No exemplo a seguir, a string de senha myp@ss:w%rd foi escapada manualmente; entretanto, rawurlencode() também pode ser usado para escapar componentes URI que podem conter caracteres especiais.

<?php

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

?>

Conectando-se ao MongoDB com autenticação X509:

<?php

$manager
= new MongoDB\Driver\Manager(
"mongodb://example.com/?ssl=true&authMechanism=MONGODB-X509",
[],
[
"pem_file" => "/caminho/para/cliente.pem",
]
);
?>
adicione uma nota

Notas Enviadas por Usuários (em inglês) 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
-2
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