Description
PHP 7 is meant to be released at the end of the year. At this time, our supported versions will be 2.3, 2.6 (security-only), 2.7 and 3.0. Each of these versions will need to be compatible with PHP 7.
Currently, Travis is running our testsuite against PHP 7 nightly, showing that this goal is not yet reached.
A bunch of tests are triggering fatal errors. We should debug the reason for that, to see whether it is a regression in PHP (which should be reported to them as soon as possible) or something related to one of the PHP 7 BC breaks, requiring to fix our code:
- form tests: https://travis-ci.org/symfony/symfony/jobs/56106607#L355
- security tests: https://travis-ci.org/symfony/symfony/jobs/56106607#L411
- translation tests: https://travis-ci.org/symfony/symfony/jobs/56106607#L562
string
cannot be used as class name (reserved because of scalar type hints)
Except these components where we cannot run tests because of these errors, the only remaining failures on PHP 7 for Symfony 2.3 (you can check Travis builds for other branches to see whether there are more in newer versions) are the parsing of hexadecimal numeric strings in XmlUtils and Yaml because PHP 7 does not cast them as int anymore. We will need to implement this conversion separately.
It would be great to start working on the PHP 7 compatibility soon (especially for the issue with class names being reserved because it might require deprecating a class name in favor of a new one, which should be done before the 2.7 release)