TL;DR
班上MongoClient
是旧版 PECL 包的一部分mongo但不再是最新的mongodb包裹。
既然你有mongodb
安装了扩展,而不是mongo
一,这就是您收到错误的原因
Fatal error: Class 'MongoClient' not found
在 MongoDB PHP 驱动程序 github 存储库上,有关版本 1.0.0 的发行说明建议开发人员使用MongoDB\Driver\Manager
代替MongoClient
对我们旧版 mongo 扩展的更改
最重要的是,旧驱动程序的 MongoClient、MongoDB 和
MongoCollection 类已被废弃
MongoDB\Driver\Manager 类,这是新的连接网关
并执行查询、命令和写入操作。
Source:: https://github.com/mongodb/mongo-php-driver/releases/tag/1.0.0
所以,这里是替换类文档以及应该替换您的代码片段:
$m = new MongoDB\Driver\Manager("mongodb://localhost:27017");
正如文档所提示的那样,该类已被弃用。
Warning定义此类的扩展已被弃用。反而,
这MongoDB应使用扩展名。此类的替代方案
包括:
Source: http://php.net/MongoClient
从我读到的在他们的 github 存储库发布历史记录中,您尝试使用的类自以下版本以来已被废弃mongodb 1.0.0
,所以,在版本上1.6.0
你是,这个类甚至不属于dll
不再了。
这是由这个问题在他们的 github 上
derickr 于 4 月 16 日发表评论
MongoClient 是旧遗留的类
驱动程序,并且不应该在这个驱动程序中可用。新司机
有 \MongoDB\Driver\Manager,并且附带的库有
\MongoDB\客户端。
您需要安装旧的遗留扩展(pecl install
mongo)并使用 PHP 5.x,或者更新您的代码以使用这个新的驱动程序
类,因为旧驱动程序不适用于 PHP 7。有一个
升级指南位于http://mongodb.github.io/mongo-php-library/upgrade-guide/
Source: https://github.com/mongodb/mongo-php-driver/issues/300#issuecomment-210820288
另一种方法,正如上面引用的 MongoDB 成员所建议的那样,是使用这个 pecl 扩展:https://pecl.php.net/package/mongo代替https://pecl.php.net/package/mongodb但也请注意那里的警告:
该软件包已被取代,但仍针对错误和安全修复进行维护。