PHP build, runtimes and extensions update
Change effective on 08 July 2014
Composer version selectors for language runtimes are now fully supported. For example, a selector like ~5.5.0
will (at the time of this changelog entry) select PHP version 5.5.14; so would a selector like >=5.3.3
. Our language support documentation has been updated to accurately describe the various scenarios of version selection.
All requests for Composer platform dependencies (meaning the php
and hhvm
runtime packages, and ext-...
extension packages) are now read from composer.lock
, if it exists. If no composer.lock
exists (because the project has no userland package requirements), information from composer.json
is used instead.
Notwithstanding this change, a request for the HHVM runtime that only exists inside composer.json
is currently still honored at this time; this is because Composer is currently exhibiting a bug where it does not save the requirement to composer.lock
, and also to allow users without HHVM installed locally to test deployments using HHVM on Heroku.
For example, when using ~5.5
as the version constraint for php
in composer.json
, running composer update
, adding hhvm
for testing purposes with version >=3.1
to composer.json
and then committing and pushing without another composer update
(to get around having to install HHVM locally) will yield the following result:
-----> Resolved composer.lock requirement for PHP ~5.5.0 to version 5.5.14.
-----> Resolved composer.json requirement for HHVM >=3.1 to version 3.1.0.
PHP version 5.6.0RC2 is now available as a runtime. To select it, you can use a stability flag in your version constraint (e.g. ~5.5@RC
) and run composer update
to re-generate composer.lock
. Upon a push, Heroku will then set up your runtimes accordingly:
-----> Resolved composer.lock requirement for PHP ~5.5@RC to version 5.6.0RC2.
Finally, the apcu
extension has been updated to version 4.0.4, and the newrelic
extension has been updated to version 4.10.1.62.
Please refer to our Heroku PHP Support article for more details and examples.