Definição
MongoDB\Client::__construct()
Constrói uma nova instância do
Client
.function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
Parâmetros
$uri
: stringA connection string do MongoDB. Consulte Connection Strings no manual do MongoDB para obter mais informações.
O padrão é
"mongodb://127.0.0.1:27017"
se não for especificado.Quaisquer caracteres especiais nos componentes do URI precisam ser codificados de acordo com RFC 3986. Isso é particularmente relevante para o nome de usuário e a senha, que geralmente podem incluir caracteres especiais,
@
como,:
%
ou. Ao conectar por meio de um soquete de domínio Unix, o caminho do soquete pode conter caracteres especiais, como barras, e deve ser codificado. A função brutourtencode() pode ser utilizada para codificar partes constituintes do URI.$uriOptions
: arrayEspecifica opções adicionais de URI, como credenciais de autenticação ou parâmetros de string de query. As opções especificadas em
$uriOptions
têm precedência sobre quaisquer opções análogas presentes na$uri
string e não precisam ser codificadas de acordo com a RFC 3986.Consulte a documentação da extensão MongoDB\Driver\Manager::__construct() para obter uma lista de opções suportadas.
$driverOptions
: arrayEspecifica opções específicas para o driver PHP. Além das opções de driver suportadas pela extensão, a biblioteca também suporta a especificação de um mapa de tipo padrão a ser aplicado aos cursores criados.
NomeTipoDescriçãoautoEncryption
array
Opções para configurar a criptografia em nível de campo do lado do cliente no driver. Consulte a documentação da extensão para obter uma lista de opções de criptografia suportadas.
Se um for fornecido para
MongoDB\Client
akeyVaultClient
opção, ele será desencapsulado em um MongoDB\Driver\Manager para a extensão.Novidade na versão 1.6.
driver
array
Metadados adicionais do driver serão passados para o handshake do servidor. Esta é uma array contendo
name
,version
eplatform
campos de string. Por exemplo:[ 'name' => 'my-driver', 'version' => '1.2.3-dev', 'platform' => 'some-platform', ] Esse recurso foi projetado principalmente para drivers personalizados e ODMs, que podem querer se identificar no servidor para fins de diagnóstico. Os aplicativos que desejam se identificar devem usar a opção
appName
URI em vez desta opção.Novidade na versão 1.7.
API do servidor
Usado para declarar uma versão da API no cliente. Consulte a página de stable API no manual do servidor MongoDB para obter informações adicionais.
Novidades na versão 1.9.
typeMap
array
Mapa de tipo padrão para aplicar aos cursores, que determina como os documentos BSON são convertidos em valores PHP. A biblioteca usa o seguinte mapa de tipos por padrão:
[ 'array' => 'MongoDB\Model\BSONArray', 'document' => 'MongoDB\Model\BSONDocument', 'root' => 'MongoDB\Model\BSONDocument', ] builderEncoder
MongoDB\Codec\Encoder
Codificador a ser usado para construtores de query e agregação . Se não for definido, esta opção assumirá como padrão uma nova instância da classe
MongoDB\Builder\BuilderEncoder
.Novidades na versão 1.21.
allow_invalid_hostname
booleano
Desabilita a validação do nome de host se
true
. O padrão éfalse
.Permitir nomes de host inválidos pode expor o driver a um ataques do tipo man-in-the-middle.
Descontinuado desde a versão 1,6: Esta opção foi descontinuada. Em vez disso, use a opção URI
tlsAllowInvalidHostnames
.ca_dir
string
Caminho para um diretório de certificado com hash correto. O armazenamento de certificados do sistema será usado por padrão.
Retorna para a opção de contexto SSL
capath
obsoleta se não for especificada.ca_file
string
Caminho para um arquivo de autoridade de certificação. O armazenamento de certificados do sistema será usado por padrão.
Retorna para a opção de contexto SSL
cafile
obsoleta se não for especificada.Descontinuado desde a versão 1,6: Esta opção foi descontinuada. Em vez disso, use a opção URI
tlsCAFile
.crl_file
string
Caminho para um arquivo de lista de revogação de certificado.
pem_file
string
Caminho para um certificado codificado PEM a ser usado para autenticação do cliente.
Retorna para a opção de contexto SSL
local_cert
obsoleta se não for especificada.Descontinuado desde a versão 1,6: Esta opção foi descontinuada. Em vez disso, use a opção URI
tlsCertificateKeyFile
.pem_pwd
string
Senha do certificado codificado PEM (se aplicável).
Retorna para a opção de contexto SSL
passphrase
obsoleta se não for especificada.Descontinuado desde a versão 1,6: Esta opção foi descontinuada. Em vez disso, use a opção URI
tlsCertificateKeyFilePassword
.flexible_cert_validation
booleano
Desabilita a validação do certificado
true
. O padrão éfalse
.Retorna para a opção de contexto SSL
allow_self_signed
obsoleta se não for especificada.Descontinuado desde a versão 1,6: Esta opção foi descontinuada. Em vez disso, use a opção URI
tlsAllowInvalidCertificates
.Contexto
resource
Opções de contexto SSL a serem usadas como fallbacks para outras opções de driver (conforme especificado). Observe que o driver não consulta o contexto de fluxo padrão.
Esta opção é suportada para compatibilidade com versões anteriores, mas deve ser considerada obsoleta.
Erros/exceções
MongoDB\Exception\InvalidArgumentException
para erros relacionados à análise de parâmetros ou opções.
MongoDB\Driver\Exception\InvalidArgumentException para erros relacionados à análise de parâmetros ou opções no nível da extensão.
MongoDB\Driver\Exception\RuntimeException para outros erros no nível da extensão (por exemplo, erros de conexão).
Comportamento
Um MongoDB\Driver\Manager é construído internamente. De acordo com a especificação de descoberta e monitoramento de servidores, o MongoDB\Driver\Manager::__construct() não executa E/S. As conexões serão inicializadas sob demanda, quando a primeira operação for executada.
Exemplos
Conexão com servidor independente
Se você não especificar um valor do $uri
, o driver conectará a um mongod
autônomo no 127.0.0.1
via porta 27017
. Para conectar a um servidor diferente, passe a string de conexão correspondente como o primeiro parâmetro ao criar a instância do Client
:
$client = new MongoDB\Client('mongodb://mongodb-deployment:27017');
Conexão com conjunto de réplicas
O exemplo a seguir demonstra como se conectar a um conjunto de réplicas com uma read preference personalizada:
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/?replicaSet=myReplicaSet', [ 'readPreference' => 'secondaryPreferred', ] );
Conexão com com SSL e autenticação
O seguinte exemplo demonstra como se conectar a um conjunto de réplicas do MongoDB definida com SSL e autenticação, como é utilizado para MongoDB Atlas:
$client = new MongoDB\Client( 'mongodb://myUsername:[email protected],rs2.example.com/?ssl=true&replicaSet=myReplicaSet&authSource=admin' );
Alternativamente, as credenciais de autenticação e os parâmetros URI podem ser especificados no parâmetro $uriOptions
do construtor:
$client = new MongoDB\Client( 'mongodb://rs1.example.com,rs2.example.com/' [ 'username' => 'myUsername', 'password' => 'myPassword', 'ssl' => true, 'replicaSet' => 'myReplicaSet', 'authSource' => 'admin', ], );
O driver é compatível com opções SSL adicionais, que podem ser especificadas no parâmetro $driverOptions
do construtor. Essas opções são abordadas na documentação do MongoDB\Driver\Manager::__construct().
Especificando um mapa de tipo personalizado
Por padrão, a biblioteca PHP do MongoDB desserializa documentos e arrays BSON como objetos MongoDB\Model\BSONDocument
e MongoDB\Model\BSONArray
, respectivamente. O exemplo a seguir demonstra como fazer com que a biblioteca desserialize tudo como uma array PHP, como foi feito na extensão legada mongo
.
$client = new MongoDB\Client( null, [], [ 'typeMap' => [ 'root' => 'array', 'document' => 'array', 'array' => 'array', ], ] );
Veja também
Formato de URI da connection string no manual do MongoDB
Especificaçãode descoberta e monitoramento do servidor