Skip composer PHP requirement

PhpComposer PhpVersioning

Php Problem Overview


We are using PHPCI and composer. The server which runs PHPCI is on PHP 5.3.

For a project we added the Facebook PHP SDK, using composer. It requires PHP 5.4. Composer gets triggered by PHPCI and get executed. But because the CI server just got PHP 5.3 composer failed with the error message:

facebook/php-sdk-v4 4.0.9 requires php >=5.4.0 -> no matching package found.

This let fail my build in PHPCI, of course.

Is there a possibility to skip this requirement? Maybe by adding an option to composer.json? Or a parameter to composer.phar call?

Php Solutions


Solution 1 - Php

I've found the option:

composer install --ignore-platform-reqs

Ignore platform requirements (php & ext- packages).


Edit: You can skip the platform checks with this, but Composer will fetch packages based on given PHP version then. So when you need composer to also emulate a PHP version during depedency resolving, you can (and should!) use this in your composer.json:

{
    "config": {
       "platform": {
           "php": "5.6.6"
       }
    }
}

https://getcomposer.org/doc/06-config.md#platform

Solution 2 - Php

For many commands, you can tell composer to bypass php version check, with parameter "--ignore-platform-reqs":

composer COMMAND --ignore-platform-reqs

this will bypass php version specification.

Be aware that the software may work or not: php version specification is there because somewhere in the code is needed at least the specified php version, so if you use that code the software will break.

Solution 3 - Php

If anything requires a specific version of PHP, it won't run in a lower version of PHP. You will properbly still recieve errors when bypassing the PHP requirement.

Btw, PHP 5.3 is no longer maintained, I would strongly recommend updating the PHPCI server.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionArminView Question on Stackoverflow
Solution 1 - PhpArminView Answer on Stackoverflow
Solution 2 - PhpLuca C.View Answer on Stackoverflow
Solution 3 - PhpWouter JView Answer on Stackoverflow