PHP 7 with Doctrine MongoDB ODM



我有一个Symfony 2应用程序,它正在使用Doctrine MongoDB ODM,我正试图用PHP 7运行它。

我已经成功安装了PHP7,但通过Composer安装依赖项让我很难过,出现了以下错误:

doctrine/mongodb 1.0.x-dev requires ext-mongo >=1.2.12,<1.7-dev -> the requested PHP extension mongo is missing from your system.

我设法通过apt:安装了PHP 7 mongo扩展

apt-get install php7.0-mongo

可以肯定的是,我还通过PECL:安装了mongodb扩展

sudo apt-get install -y php-pear php7.0-dev libcurl3-openssl-dev
sudo pecl install mongodb

然而,我仍然得到一个错误,即找不到mongo扩展。似乎存在版本差异,需要ext-mongo >=1.2.12,但只安装了1.1.6

$ php -i | grep mongo
/etc/php/7.0/cli/conf.d/20-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

安装Doctrine ODM for PHP 7所需的mongo扩展的正确方法是什么?

在PHP7上,您无法安装mongo扩展。你能做的就是安装https://github.com/alcaeus/mongo-php-adapter首先,安装学说。

composer require alcaeus/mongo-php-adapter

在composer.json中我添加了

"provide" : {
  "ext-mongo": "*"
},

在"需要"之前,这将强制安装最新的扩展

为了在MongoDB中使用Symfony,您需要:

  • Symfony:显然:-)
  • Symfony Doctrine-MongoDB捆绑包(Doctrine/MongoDB-odm-Bundle):该捆绑包将Doctrine2 MongoDB对象文档映射器(odm)库集成到Symfony中
  • Doctrine-MongDB对象文档映射器(Doctrine/MongoDB-odm):为MongoDB提供PHP对象映射功能的库
  • MongoDB适配器(alcaeus/mongo-php-Adapter):它提供了在mongo-php-library之上构建的ext-mongo的API,与php 7兼容
  • MongoDB驱动程序库(MongoDB/MongoDB):围绕PHP的底层驱动程序提供高级抽象
  • MongoDB PHP扩展:PHP和HHVM的底层驱动程序扩展。请注意MongoDB驱动程序。不要使用遗留的MongoDB驱动程序(http://php.net/manual/en/book.mongo.php)

您可以按照此处的说明进行操作:"如何使用MongoDB安装Symfony3"

它是为Symfony3编写的,但为Symfoy2编写的是同一问题。问题是PHP7+mongodb驱动程序+条令。

相关内容

  • 没有找到相关文章