php70-mongo 安装 doctrine/mongodb-odm 失败

php70-mongo install doctrine/mongodb-odm fails

我尝试在 composer 上安装 doctrine/mongodb-odm[1.0.5] 但让我失望

  Problem 1
    - doctrine/mongodb 1.3.0 requires ext-mongo ^1.5 -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.2.2 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.2.1 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb 1.2.0 requires ext-mongo ^1.2.12 -> the requested PHP extension mongo is missing from your system.
    - doctrine/mongodb-odm 1.0.5 requires doctrine/mongodb ~1.2 -> satisfiable by doctrine/mongodb[1.2.0, 1.2.1, 1.2.2, 1.3.0].
    - Installation request for doctrine/mongodb-odm ~1.0.5 -> satisfiable by doctrine/mongodb-odm[1.0.5].

mongo 扩展已经安装

php -i | grep mongo

/usr/local/etc/php/7.0/conf.d/ext-mongodb.ini
mongodb
mongodb support => enabled
mongodb version => 1.1.6
mongodb stability => stable
libmongoc version => 1.3.5
mongodb.debug => no value => no value

这个案例出了什么问题?

PHP 有 2 个 MongoDB 的扩展名:

  1. http://php.net/manual/en/book.mongo.php
  2. 找到的旧版
  3. 当前的http://php.net/manual/en/set.mongodb.php

在 "doctrine/mongodb-odm" 的情况下,它希望找到旧版 "mongo" 但您安装的是较新的 "mongodb"。

要使用旧版扩展,您需要使用 php <= 5.6,因为 php 7 只有 mongodb 可用。

在 PHP7 上,您有 mongodb 扩展名,如@xaben 所述。您可以将其与学说一起使用,直到它支持 mongodb,但通过安装额外的库 https://github.com/alcaeus/mongo-php-adapter

首先通过 composer 安装:

composer require alcaeus/mongo-php-adapter

然后安装学说。对我来说效果很好。

我遇到了问题,但是使用 php 5.6 和 mysql 安装和配置 symfony 3.1,在需要安装程序 mongodb 之后,所以更新 7.1

问题composer.json:

"config": {
    "platform": {"php": "5.6"}
}

变化:

"config": {
    "platform": {"php": "7.1"}
}