Minimum PHP requirements - should they be PHP 7.0, 7.1 and 7.2
I want to rediscuss the topic of the minimum PHP requirements for TYPO3 v9:
Current Status on the PHP minimum requirements
- We decided in May 2017 on PHP 7.0 as minimum requirement for TYPO3 v9
- PHP 7.0 is in security-only mode will run out of security fixes in December 2018
- PHP 7.2 was released last week, and security support will end in December 2020
- We managed to get TYPO3 v7, TYPO3 v8 and TYPO3 v9 compatible with PHP 7.2
Just to get the TYPO3 dates off your tongues
TYPO3 v9 LTS will be released in October 2018, and supported by the community until October 2021 (= longer than the latest PHP 7.2 version officially).
Update on the distributions
- Ubuntu 16.04 ships PHP 7.0
- Ubuntu 18.04 will ship PHP 7.2
- RHEL / CentOS 7 ship PHP 5.4 by default, but has the RHELSC (Software Collection) which allows newer PHP versions - https://blog.remirepo.net/post/2017/10/05/Red-Hat-will-provide-PHP-7.1-for-RHEL-and-CentOS
- SLES 12 ships PHP 7.0 with support ending in June 2019
- Debian ships PHP 7.0, but as we all know Debian hosters are bit more easy on the 3rd-party repos via Ondrey’s repos
So, here it is: By the time we ship TYPO3 v9 LTS, PHP 7.0 security support has two more months to go.
New issues due to our PHP dependencies
But the main reason for asking again is the heavy maintenance we’re gonna be under due to our composer dependencies:
Our main areas we heavily use dependencies on is Symfony and Doctrine DBAL. Both of their latest versions have a minimum requirement to PHP 7.1. However, Symfony 3.4 (LTS) has support until 2021, which works fine for our current workflow.
At this point, Doctrine DBAL switched to PHP 7.1 as minimum requirement, which is already stocks up a lot of support issues for us, as people use “composer” in a wrong way (they have to define their minimum version for their project). If we stick to PHP 7.0 for TYPO3 v9, this issue will follow us for the next 4 years (1y until LTS, and then 3ys of maintenance).
Additionally, we don’t know the Doctrine DBAL policy for security issues, if they ever get fixed in the “2.5” branch (with PHP 7.0 support) or only for newer versions, which would mean, we’d need to fork 2.5 to keep it running for us.
For me now it’s more an impact “should we stay in line with our dependencies and keep our version in sync” vs. “keep PHP 7.0 as minimal and deal with possible security issues ourselves then” rather than the syntactic sugar that comes with newer PHP versions.
In light of recent development (see above) I’d like to get your feedback again, basically what’s your preference:
- PHP 7.0+
- PHP 7.1+
- PHP 7.2+
I will then consider your feedback and reconsider a voting again.
PS: For the time being I will raise the PHP minimum requirements for master now. If we decide on PHP 7.0 we can lower that barrier again for TYPO3 v9. Keeping “PHP 7.0” for TYPO3 v9.0, and then change it after a possible re-vote, would be a breaking change in a minor release. (of course we keep our dependencies as they are right now).
PPS: We will always try to keep TYPO3 versions as much “forward-compatible” with to-be-released PHP versions as possible, but promises can’t be made here of course.
Reference
Here you find the original discussion, you should really re-read it as most arguments are still valid IMHO:
Organizational
Topic Initiator: Benni Mack
Topic Mentor: Benni Mack