【发布时间】:2016-04-06 18:21:19
【问题描述】:
有没有办法在 PHP7 中使用来自 PECL 的 Legacy Mongo PHP Driver?也许是支持 PHP7 的非官方 fork 或编译/修改指令...
【问题讨论】:
-
我意识到stackoverflow.com/questions/34486808/…的可能重复。
标签: mongodb php-7 php-mongodb
有没有办法在 PHP7 中使用来自 PECL 的 Legacy Mongo PHP Driver?也许是支持 PHP7 的非官方 fork 或编译/修改指令...
【问题讨论】:
标签: mongodb php-7 php-mongodb
如果您确实需要使用任何对 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
【讨论】:
不,旧版驱动程序不支持 PHP7。这是the commit 和JIRA 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 驱动程序根本不再活动。
【讨论】: