I wanted to use hhvm to speed up the process of installing composer updates. Everything was fine until I wanted to install doctrine/mongodb-odm, which requires the mongodb php extension. I get the following output:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- doctrine/mongodb-odm 1.0.x-dev requires doctrine/mongodb >=1.1.5,<2.0 -> satisfiable by doctrine/mongodb[1.2.x-dev, 1.1.5, 1.1.x-dev].
- doctrine/mongodb-odm 1.0.x-dev requires doctrine/mongodb >=1.1.5,<2.0 -> satisfiable by doctrine/mongodb[1.2.x-dev, 1.1.5, 1.1.x-dev].
- doctrine/mongodb 1.2.x-dev requires ext-mongo >=1.2.12,<1.6-dev -> the requested PHP extension mongo is missing from your system.
- doctrine/mongodb 1.1.x-dev requires ext-mongo >=1.2.12,<1.6-dev -> the requested PHP extension mongo is missing from your system.
- doctrine/mongodb 1.1.5 requires ext-mongo >=1.2.12,<1.6-dev -> the requested PHP extension mongo is missing from your system.
- doctrine/mongodb 1.2.x-dev requires ext-mongo >=1.2.12,<1.6-dev -> the requested PHP extension mongo is missing from your system.
- Installation request for doctrine/mongodb-odm 1.0.x-dev -> satisfiable by doctrine/mongodb-odm[1.0.x-dev].
If I run composer update using just php-cli, it works fine (as I have the mongo extension installed). But hhvm is not detecting the extension.
I've tried adding the following line to the hhvm php.ini without any luck (both like this and with full path)
extension=mongo.so
Is there a way to use it? Or should I use it just for dependencies that not require php extensions?
HHVM uses a different set of extensions than the regular PHP, so you have two options:
If you are just using HHVM for composer, and so don't need Mongo available to HHVM directly, you can use composer's --ignore-platform-reqs
option which will skip that particular check.
Alternatively, as has been mentioned there are HHVM Mongo extensions emerging, but they aren't fully featured or mature yet so if you are only using composer then it's a lot of extra effort for no real gain.