【问题标题】:Using "Legacy" MongoDB Driver with PHP7在 PHP7 中使用“旧版”MongoDB 驱动程序
【发布时间】:2016-04-06 18:21:19
【问题描述】:

有没有办法在 PHP7 中使用来自 PECL 的 Legacy Mongo PHP Driver?也许是支持 PHP7 的非官方 fork 或编译/修改指令...

【问题讨论】:

标签: mongodb php-7 php-mongodb


【解决方案1】:

如果您确实需要使用任何对 php mongo 旧版驱动程序具有强依赖性的包或库,还有一个替代方案,它称为“alcaeus:mongo-php-adapter”。它在 mongo-php-library (sic) 之上提供了一个 ext-mongo 库。

https://github.com/alcaeus/mongo-php-adapter

如果您遇到任何与缺少旧版驱动程序相关的 composer 问题(著名消息“请求的 PHP 扩展 ext-mongo * 丢失”),您可以将其添加到 composer.json 来修复它

“提供”:{ “ext-mongo”:“1.6.12” },

在这种情况下,您可能想看看这个线程(同样的情况,但使用 heroku):https://github.com/alcaeus/mongo-php-adapter/issues/67

【讨论】:

    【解决方案2】:

    不,旧版驱动程序不支持 PHP7。这是the commitJIRA Ticket,这是正式定稿的地方。

    可以在in PECL here(或GitHub)找到新的 PHP MongoDB 驱动程序。

    要安装,只需:

    pecl channel-update pecl.php.net
    
    pecl install mongodb
    
    echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
    

    可以在here 找到新驱动程序的文档。我想在文档中添加一条注释:

    最终,此扩展不打算单独使用。用户应考虑将此驱动程序与一个或多个用户级 PHP 库一起使用,例如 mongo-php-library

    新的mongodb 驱动程序/PHP 扩展比旧的mongo 驱动程序低级得多,鼓励您在驱动程序之上使用更高级别的库,而不是直接在您的代码。

    Mongo PHP Library (releases) 是 PHP 的官方高级库,推荐在您的项目中使用。它仍处于 Beta 阶段,但这似乎仍然是 PHP7 最安全、最有前途的前进道路。

    编辑:旧版 Mongo 驱动程序根本不再活动。

    【讨论】:

    • 首先,感谢编辑。从正确的问题到错误的问题。我知道最后一次提交。我知道新司机。我正在寻找将旧版驱动程序与 PHP7 一起使用的方法。这就是我要问的问题。
    • 没问题。对,旧版驱动程序根本无法与 PHP7 一起使用。您必须手动修改它以与新 API 兼容。我认为这是切换到新驱动程序的好时机。
    猜你喜欢
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    • 1970-01-01
    • 2016-04-04
    • 2016-09-05
    • 2016-03-13
    相关资源
    最近更新 更多