phpconfigurationcomposer-phphhvm

How to always use ignore-platform-reqs flag when running composer?


On my local machine, I have php v7.0.3. A project of mine has a dependency on php v5.5.

So as expected, a simple run of composer install crashes:

Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - This package requires php ~5.5 but your PHP version (7.0.3) does not satisfy that requirement.

I know I can ignore the platform via:

composer install --ignore-platform-reqs

yet I often forget to add the flag. Yet since the application runs inside a docker container, a mismatching php can install the dependencies just as fine.

So I am wondering if there is a way to make my local composer always assume --ignore-platform-reqs in order to not having to type it.

I like to avoid setting an alias and have it work on composer config level.


Solution

  • It's recommended to fake the PHP version, rather than to ignore platform requirements. Add:

    "platform":{"php":"5.5"}
    

    to your ~/.composer/config.json or use composer config -g -e to edit it.

    An example of a config to fake the PHP version and an extension:

    {
        "config": {
            "platform":{
                "php": "8.1",
                "ext-bcmath": "8.1"
            }
        }
    }
    

    More options about the config's platform section can be found in the Composer docs.

    UPDATE: starting from v2.3.0 you can use environment variables. Please see Yakatz' answer