Definição
MongoDB\Client::__construct()Constrói uma nova instância
Client.function __construct( ?string $uri = null, array $uriOptions = [], array $driverOptions = [] )
Parâmetros
$uri: stringA string de conexão do MongoDB. Consulte Strings de conexão 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
$uriOptionstêm precedência sobre quaisquer opções análogas presentes na string$urie 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
MongoDB\Clientfor fornecido para a opçãokeyVaultClient, ele será desencapsulado em um MongoDB\Driver\Manager para a extensão.Novidades na versão 1.6.:
driver
array
Metadados adicionais do driver serão passados para o handshake do servidor. Esta é uma array contendo
name,versioneplatformcampos 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
appNameURI em vez desta opção.Novidades 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 de 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
capathobsoleta 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
cafileobsoleta se não for especificada.Descontinuado desde a versão 1.6. : Esta opção foi descontinuada. Em vez disso, use a opção de 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_certobsoleta se não for especificada.Descontinuado desde a versão 1.6. : Esta opção foi descontinuada. Em vez disso, use a opção de URI
tlsCertificateKeyFile.pem_pwd
string
Senha do certificado codificado PEM (se aplicável).
Retorna para a opção de contexto SSL
passphraseobsoleta se não for especificada.Descontinuado desde a versão 1.6. : Esta opção foi descontinuada. Em vez disso, use a opção de 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_signedobsoleta se não for especificada.Descontinuado desde a versão 1.6. : Esta opção foi descontinuada. Em vez disso, use a opção de 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: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