Driver PHP do MongoDB
Nesta página
Introdução
Bem-vindo ao site de documentação do driver PHP oficial da MongoDB. Você pode adicionar o driver ao seu aplicativo para trabalhar com MongoDB em PHP. O driver MongoDB PHP consiste nos seguintes componentes:
A extensão, que fornece uma API de baixo nível e serve principalmente para integrar libmongoc e libbson com PHP.
A biblioteca que fornece uma API de alto nível para trabalhar com Banco de dados MongoDB consistentes com outros drivers de linguagem MongoDB.
Embora seja possível usar a extensão de forma independente, o MongoDB recomenda usar a extensão e a biblioteca juntas. Para saber mais sobre os componentes do driver PHP, consulte a seção Arquitetura do driver desta página.
Navegue pelos links a seguir para saber mais sobre o driver e acessar o conteúdo do tutorial sobre como configurar um projeto executável:
Documentação
Registro de alterações
código fonte
Arquitetura de driver
Esta seção descreve como os componentes do driver PHP trabalham juntos. Esses componentes se encaixam nas seguintes categorias gerais:
API de alto nível, que inclui a biblioteca e outras integrações
Extensão, que inclui a extensão que integra as bibliotecas de sistemas
Sistema, que inclui o C Driver, a biblioteca BSON e a biblioteca de criptografia
O diagrama a seguir ilustra a arquitetura dos componentes do driver PHP:
A biblioteca PHP fornece uma API consistente com os outros drivers do MongoDB. A biblioteca é atualizada continuamente para atender às especificações de vários drivers. Você deve adicionar a biblioteca como uma dependência para acessar o MongoDB na maioria dos aplicativos PHP.
A extensão é distribuída por meio do PECL e conecta o PHP às bibliotecas do sistema. A API pública da extensão fornece a seguinte funcionalidade:
Gerenciamento de conexões
Codificação e decodificação BSON
Serialização de documento de objeto
Execução de comandos
Gerenciamento do cursor
Para saber mais sobre as bibliotecas de sistemas, consulte a documentação do Driver C.
Conecte-se a uma implantação compatível do MongoDB
Você pode usar o driver PHP para se conectar a implementações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB
Instalação
Primeiro, verifique se você tem uma versão recente do PHP instalada em seu sistema. Consulte o manual oficial do PHP para obter instruções de download e instalação.
Instale a extensão PHP MongoDB antes de instalar a biblioteca PHP para MongoDB. Você pode instalar a extensão usando o PECL na linha de comando:
sudo pecl install mongodb
Por fim, adicione a seguinte linha ao seu arquivo php.ini
:
extension=mongodb.so
Observação
Em alguns sistemas, pode haver vários arquivos INI para SAPIs individuais (por exemplo, CLI, FPM). Habilite a extensão em todos os SAPIs necessários.
O método preferido de instalar a biblioteca PHP é com o Composer executando o seguinte a partir da raiz do seu projeto:
composer require mongodb/mongodb
Depois de instalar a biblioteca, verifique se seu aplicativo inclui o carregador automático do Composer, como no exemplo a seguir:
require_once __DIR__ . '/vendor/autoload.php';
Instruções de instalação adicionais podem ser encontradas na documentação da biblioteca.
Ligar ao MongoDB Atlas
Você pode utilizar o seguinte trecho de conexão para testar sua conexão com seu MongoDB deployment no Atlas:
use Exception; use MongoDB\Client; use MongoDB\Driver\ServerApi; // Replace the placeholder with your Atlas connection string $uri = '<connection string>'; // Specify Stable API version 1 $apiVersion = new ServerApi(ServerApi::V1); // Create a new client and connect to the server $client = new MongoDB\Client($uri, [], ['serverApi' => $apiVersion]); try { // Send a ping to confirm a successful connection $client->selectDatabase('admin')->command(['ping' => 1]); echo "Pinged your deployment. You successfully connected to MongoDB!\n"; } catch (Exception $e) { printf($e->getMessage()); }
Este trecho de conexão usa a funcionalidade Stable API, que você pode habilitar ao usar o driver PHP v1.9 e mais recentes para se conectar ao servidor MongoDB v5.0 e mais recentes. Ao usar essa funcionalidade, você pode atualizar seu driver ou servidor sem se preocupar com problemas de compatibilidade com versões anteriores com quaisquer comandos cobertos pela Stable API.
Para saber mais sobre a funcionalidade Stable API, consulte Stable API no manual do servidor.
Observação
A partir de fevereiro de 2022, a API versionada é conhecida como API estável. Todos os conceitos e recursos permanecem os mesmos com esta mudança de nomenclatura.
Conecte-se ao Atlas MongoDB sem a API estável
Se estiver usando uma versão do MongoDB ou do driver não compatível com a funcionalidade Stable API, você pode usar o seguinte trecho de código para testar sua conexão com o MongoDB deployment no Atlas:
use Exception; use MongoDB\Client; // Replace the placeholder with your Atlas connection string $uri = '<connection string>'; // Create a new client and connect to the server $client = new MongoDB\Client($uri); try { // Send a ping to confirm a successful connection $client->selectDatabase('admin')->command(['ping' => 1]); echo "Pinged your deployment. You successfully connected to MongoDB!\n"; } catch (Exception $e) { printf($e->getMessage()); }
Conecte-se a um servidor MongoDB em sua máquina local
Se você precisar executar um servidor MongoDB em seu computador local para fins de desenvolvimento, em vez de usar um cluster do Atlas, será necessário concluir o seguinte:
Baixe a versão Comunidade ou Enterprise do MongoDB Server.
Instale e configure o servidor MongoDB.
Inicie o servidor.
Importante
Sempre proteja seu servidor do MongoDB contra ataques maliciosos. Consulte nossa Lista de verificação de segurança para obter uma lista de recomendações de segurança.
Depois de iniciar com êxito o servidor MongoDB, especifique a connection string no código de conexão do driver.
Se o servidor MongoDB estiver sendo executado localmente, você poderá usar a connection string "mongodb://localhost:<port>"
, em que <port>
é o número da porta que você configurou no servidor para escutar as conexões de entrada.
Se você precisar especificar um nome de host ou endereço IP diferente, consulte a entrada do Manual do servidor sobre strings de conexão.
Para testar se você pode se conectar ao servidor, substitua a string de conexão no exemplo de código Connect to MongoDB Atlas e execute-a.
Compatibilidade
Devido a possíveis problemas que representam inteiros de 64 bits em plataformas de 32 bits, os usuários são aconselhados a usar ambientes de 64 bits. Ao utilizar uma plataforma de 32 bits, esteja ciente de que qualquer leitura de inteiro de 64bits do banco de dados será retornada como uma instância MongoDB\BSON\Int64 em vez de um tipo inteiro PHP.
Compatibilidade com o MongoDB
A tabela de compatibilidade a seguir especifica a versão ou as versões recomendadas do driver PHP para usar com uma versão específica do MongoDB.
A primeira coluna lista a versão do driver.
Importante
O MongoDB garante a compatibilidade entre o MongoDB Server e os drivers por três anos após a data de fim da vida útil (EOL) da versão do servidor. Para saber mais sobre a versão do MongoDB e as datas de EOL, consulte Agendamentos do ciclo de vida do software MongoDB.
Legenda da tabela de compatibilidade
Icon | Explicação |
---|---|
✓ | Todas as funcionalidades são suportadas. |
⊛ | A versão Driver funcionará com a versão MongoDB, mas nem todos os novos recursos MongoDB são suportados. |
Sem marca | A versão Driver não é testada com a versão MongoDB. |
Versões do driver PHP | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 | MongoDB 3.4 | MongoDB 3.2 | MongoDB 3,0 | MongoDB 2.6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
ext + lib 1.16 a 1.19 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
ext + lib 1,15 [1] | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
ext 1.14 + lib 1.13 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
ext 1.13 + lib 1.12 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
ext 1.12 + lib 1.11 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.11 + lib 1.10 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.10 + lib 1.9 | ⊛ | ⊛ | ⊛ | ✓ [2] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.9 + lib 1.8 | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.8 + lib 1.7 | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.7 + lib 1.6 | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.6 + lib 1.5 | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.5 + lib 1.4 | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext 1.4 + lib 1.3 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.3 + lib 1.2 | ✓ | ✓ | ✓ | ✓ | ||||||||
ext 1.2 + lib 1.1 | ✓ | ✓ | ✓ | ✓ | ||||||||
ext 1.1 + lib 1.0 | ✓ | ✓ | ✓ | |||||||||
ext 1.0 | ✓ | ✓ |
[1] | (1, 2) A versão 1.14 da biblioteca MongoDB PHP foi ignorada para restaurar a paridade da versão entre a biblioteca e a extensão. |
[2] | A extensão 1.10 + driver da biblioteca 1.9 não é compatível com leituras de snapshots em secundários. Para obter mais informações, consulte as notas de versão do MongoDB Server versão 5.0. |
Compatibilidade de linguagem
A tabela de compatibilidade a seguir especifica a versão ou as versões recomendadas do driver PHP para usar com uma versão específica do PHP.
A primeira coluna indica as versões do driver.
Versões do driver PHP | PHP 8.4 | PHP 8.3 | PHP 8.2 | PHP 8.1 | PHP 8.0 | PHP 7.4 | PHP 7.3 | PHP 7.2 | PHP 7.1 | PHP 7.0 | PHP 5.6 | PHP 5.5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext + lib 1.17 a 1.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext + lib 1.16 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
ext + lib 1,15 [1] | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
ext 1.14 + lib 1.13 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.13 + lib 1.12 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.12 + lib 1.11 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.11 + lib 1.10 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.10 + lib 1.9 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.9 + lib 1.8 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext 1.8 + lib 1.7 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.7 + lib 1.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext 1.6 + lib 1.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext 1.5 + lib 1.4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
ext 1.4 + lib 1.3 | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||
ext 1.3 + lib 1.2 | ✓ | ✓ | ✓ | ✓ | ✓ |
Para obter mais informações sobre como ler as tabelas de compatibilidade, consulte nosso guia em tabelas de compatibilidade do MongoDB.
Como obter ajuda
Faça perguntas em nossos fóruns da MongoDB Community.
Visite nossos Canais de Suporte.
Registre um problema ou uma solicitação de recurso no JIRA com um dos seguintes nomes: - Extensão - Biblioteca