2016-03-24 5 views
0

I`Komponist install` läuft auf` hhvm` auch wenn ich `php` erfordern

"require": { 
    "php": ">=5.5", 
    "phpunit/phpunit": ">4,<6" 
}, 

in meinem composer.json Datei gesetzt haben:

https://github.com/giorgiosironi/eris/blob/master/composer.json#L20

composer install aber noch akzeptiert zu auf hhvm ausgeführt werden, wie zu sehen:

https://travis-ci.org/giorgiosironi/eris/jobs/118241849

Ich dachte, erfordern php bedeutete ich wollte eine bestimmte Version von php, so hhvm wurde ausgeschlossen. Es scheint stattdessen, dass diese Wahl bedeutet, dass wenn gibt es eine php vorhanden ist, muss es die Versionsbeschränkung zu erfüllen, aber wenn es nur hhvm ist, wird es nicht gelten.

Ist das was passiert? Wenn ja, wie kann ich angeben, dass das Paket nicht mit hhvm kompatibel ist?

Antwort

1

können Sie verwenden, um die conflict Option zu sagen, dass Ihr Paket Konflikte mit HHVM. Dies würde so aussehen

"conflict": { 
    "hhvm": "*" 
} 

, die Ihr Paket setzt wie bei jeder Version von HHVM Konflikt zu geraten.

0

HHVM gibt die PHP_VERSION Konstanten aus. Ich bin ziemlich sicher, dass der Komponist einfach diese Konstanten benutzt, um die Version hier zu finden.

Mein Verständnis ist, dass HHVM ihre PHP_VERSION erhöht hat, wie sie Feature-Parität mit der zugehörigen Vanille-PHP-Version erhalten.