MongoDB\Client::__construct()
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 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. O código bruto () pode ser usada 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 o MongoDB\Driver\Manager::__construct() documentação de extensão para uma lista de opções suportadas.
$driverOptions
: arrayEspecifica opções específicas para o driver PHP. Além das opções de driver compatíveis com a extensão, a biblioteca também suporta a especificação de um mapa de tipos padrão para aplicar aos cursores que cria.
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 aplicar aos cursores, o 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', ] 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 para serem usados 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 Descoberta e Monitoramento do Servidor MongoDB especificaçã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:myPassword@rs1.example.com,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
Descoberta e monitoramento doservidor MongoDB especificação