MongoDB PHP 驱动程序
本页内容
简介
欢迎使用官方 MongoDB PHP 驱动程序的文档网站。您可以将该驱动程序添加到您的应用程序中,以在 PHP 中使用 MongoDB。MongoDB PHP 驱动程序由以下组件组成
(此处省略部分内容)扩展,它提供低级API,主要用于将PHP与libmongoc和libbson集成。
库,它提供与MongoDB数据库交互的高级API,与其他MongoDB语言驱动程序保持一致。
虽然可以使用扩展单独使用,但MongoDB建议同时使用扩展和库。要了解更多关于PHP驱动程序组件的信息,请参阅本页的驱动程序架构部分。
通过以下链接了解更多关于驱动程序的信息,访问设置可运行项目的教程内容
驱动程序架构
本节描述了PHP驱动程序组件如何协同工作。这些组件分为以下几类
高级API,包括库和其他集成
扩展,包括集成系统库的扩展
系统,包括C驱动程序、BSON库和加密库
以下图表说明了PHP驱动程序组件的架构
PHP库提供与其他MongoDB驱动程序一致的API。库持续更新以满足跨驱动程序规范。您必须将库作为依赖项添加,才能在大多数PHP应用程序中访问MongoDB。
该扩展通过使用PECL进行分发,并将PHP连接到系统库。该扩展的公共API提供了以下功能
连接管理
BSON编码和解码
对象文档序列化
命令执行
光标管理
有关系统库的更多信息,请参阅C驱动程序文档。
连接到兼容的MongoDB部署
您可以使用PHP驱动程序连接到以下环境中的部署
MongoDB Atlas:云中MongoDB部署的完全托管服务
MongoDB企业版:基于订阅的、自我管理的MongoDB版本
MongoDB社区版:源代码可用的、免费使用和自我管理的MongoDB版本
安装
首先,请确保您系统上安装了最新版本的PHP。请参阅官方PHP手册以获取下载和安装说明。
在安装MongoDB PHP库之前,请先安装PHP MongoDB扩展。您可以使用PECL命令行来安装扩展
sudo pecl install mongodb
最后,将以下行添加到您的php.ini
文件中
extension=mongodb.so
注意
在某些系统上,可能存在多个INI文件用于单个SAPI(例如CLI、FPM)。请确保在您需要的所有SAPI中启用扩展。
安装PHP库的首选方法是通过在项目根目录下运行以下命令使用Composer
composer require mongodb/mongodb
安装库后,请确保您的应用程序包含Composer的自动加载器,如下例所示
require_once __DIR__ . '/vendor/autoload.php';
有关安装说明,请参阅库文档。
连接到MongoDB Atlas
您可以使用以下连接代码片段来测试您与MongoDB Atlas上MongoDB部署的连接
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()); }
此连接代码片段使用稳定API功能,您可以在使用PHP驱动程序v1.9和更高版本连接到MongoDB Server v5.0和更高版本时启用此功能。当您使用此功能时,您可以更新驱动程序或服务器,而无需担心与稳定API覆盖的任何命令的向后兼容性问题。
有关稳定API功能的更多信息,请参阅服务器手册中的稳定API。
注意
从2022年2月开始,版本化API被称作稳定API。所有概念和功能在此命名更改后保持不变。
不使用稳定API连接到MongoDB Atlas
如果您使用的是不支持稳定API功能的MongoDB版本或驱动程序,可以使用以下代码片段来测试您与Atlas上MongoDB部署的连接。
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()); }
连接到本地机器上的MongoDB服务器
如果您需要在本机运行MongoDB服务器进行开发,而不是使用Atlas集群,则需要完成以下步骤
重要
始终确保您的MongoDB服务器免受恶意攻击。请参阅我们的安全清单,了解安全建议列表。
在您的MongoDB服务器成功启动后,请在驱动程序连接代码中指定连接字符串。
如果您的MongoDB服务器在本地运行,您可以使用连接字符串"mongodb://localhost:<port>"
,其中<port>
是您配置服务器监听传入连接的端口号。
如果您需要指定不同的主机名或IP地址,请参阅我们关于连接字符串的服务器手册条目。
要测试您是否可以连接到服务器,请将连接到MongoDB Atlas代码示例中的连接字符串替换,并运行它。
兼容性
由于在32位平台上表示64位整数可能存在潜在问题,建议用户使用64位环境。在使用32位平台时,请注意,从数据库中读取的任何64位整数将返回为MongoDB\BSON\Int64实例,而不是PHP整数类型。
MongoDB 兼容性
以下兼容性表指定了与特定版本的MongoDB一起使用的PHP驱动程序的推荐版本。
第一列列出了驱动程序版本。
重要
MongoDB确保在服务器版本的生命周期结束(EOL)日期之后的三年内,MongoDB服务器与驱动程序之间的兼容性。有关MongoDB发布和EOL日期的更多信息,请参阅MongoDB软件生命周期计划。
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 |
---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext + lib 1.16 to 1.19 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
ext + lib 1.15 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
语言兼容性
以下兼容性表格指定了与特定PHP版本一起使用的PHP驱动程序的推荐版本或版本。
第一列列出驱动程序版本。
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 |
---|---|---|---|---|---|---|---|---|
ext + lib 1.20 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ext + lib 1.17至1.19 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
ext + lib 1.16 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
ext + lib 1.15 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
有关如何阅读兼容性表格的更多信息,请参阅我们的MongoDB 兼容性表格指南.
获取帮助
在我们的MongoDB 社区论坛提问。
访问我们的支持渠道