Composer 1.4 made the platform check a real error

Installing a package requiring a PHP version newer than the one running used to be a warning in some paths. Composer 1.4 tightened it, which surfaces a problem that had been latent on machines with several PHP versions installed.

composer install
#   Problem 1
#     - package/thing 3.0.0 requires php ^7.1 -> your PHP version (7.0.22) does not satisfy

composer config platform.php 7.0.22   # resolve as the server, not as this machine
composer why-not php 7.1

The common cause is a CLI binary that is not the version the web server uses, so the lock file is resolved against the wrong target and installs fine locally. Setting platform.php to the production version makes every machine resolve identically, and it is a lie to the resolver rather than a compatibility check — code using 7.1 syntax still runs locally and still breaks on 7.0.