4

我正在运行 Ubuntu 16.04 LTS,我想将 Mongodb 与 PHP 一起使用。为此,我认为sudo apt-get install php5-mongo(对于 Ubuntu 14.04 LTS 来说已经足够了)就足够了,但我错了。我收到这样的错误E: Unable to locate package php5-mongo

我刚刚升级到Ubuntu 16.04 LTS并想mongodbPHP. 运行 PHP 版本是PHP Version 7.0.4-7ubuntu2.

那么我能做些什么来解决这个问题呢?

4

2 回答 2

6

恐怕你现在有点不走运。目前的情况是有两个MongoDB扩展:

  • “php-mongo”,这是“旧”的;此扩展最多支持 PHP 5.*,但不支持 PHP7。仅计划对其进行错误修复;
  • “php-mongodb”,这是“新”的一个;此扩展支持 PHP5 以及 PHP7;

现在的问题是新的与旧的不兼容,因为它们的整个内部结构完全不同。不幸的是,很少有地方使用新语法的示例,因为绝大多数与 Mongo 相关的代码都是使用旧扩展编写的。

就目前而言,如果您已经转向 PHP7,您唯一的选择是使用“新”扩展,这反过来意味着您以前的代码将停止工作。

我已经看到一些尝试创建一个 polyfill 以使这两种迁移成为可能(例如:https ://github.com/alcaeus/mongo-php-adapter ),但是由于我自己没有尝试过,所以我不能告诉它工作得如何。

似乎这个库http://mongodb.github.io/mongo-php-library/应该弥补差距 - 在试一试之后,我相信它应该覆盖大部分“旧”功能而无需过多更新代码.

于 2016-05-04T14:24:11.560 回答
0

如果你们中的一些人仍然想对新库使用一个简单的包装器,如这个答案中所说:https ://stackoverflow.com/a/48086676/2569789 我为此目的维护一个,你可以在这里找到它:https://github.com/ThomasSquall/PHP7MongoDriver

它只涵盖了今天的一些方法,但我会不断改进它,我希望也能做出贡献:)

于 2018-01-03T23:47:01.023 回答