No Minimum PHP Version Bump This Year, WordPress to Support PHP 5.6 for a While Longer

We should be leading the users, not following them.
We should be guiding the users, not coddling them.
We should carve out the road to the future, not continue to fix a broken road to the past.
We should say what we do and do what we say.

Juliette Reinders Folmer wrapped up her final thoughts on a ticket she had opened a mere three days ago. She had opened the ticket in anticipation of movement on WordPress’s minimum supported version of PHP. She had opened it after seeing the plan to no longer support PHP 5.6 in the WordPress 5.6 release plans (note that initial release plans are not necessarily set in stone).

There is no denying the symmetry of dropping support for PHP 5.6 with the release of WordPress 5.6. Fate seemed to be calling down, saying that it was time to move past the platform’s support of a version that reached End of Life in December 2018. It would be a nice sendoff, a farewell that could usher in a new era of maintaining some semblance of staying up to date with the latest and greatest the programming language has to offer.

But the excitement was cut short. WordPress developers, especially those who have longed for WordPress to be more proactive in updating its PHP requirements, will have to continue pushing for modernization into 2021. It does not look like it will happen this year.

Matt Mullenweg, WordPress co-founder and project lead, closed the ticket a few short hours after its opening. “Just so we don’t cherry-pick stats to make a point, it’s worth noting that the PHP distribution across all WP sites we track is the same as when that post was made in 2018: 85% are 5.6 or above,” he wrote. “Only about 66% are 7.1 and above.”

WordPress has required a minimum of PHP 5.6 since its version 5.2 release. Of the WordPress installs on versions 5.2 through the current 5.5 only 10.69% of those are running PHP 5.6, according to Sergey Biryukov, a core committer for WordPress. This percentage is even lower than when the team flipped the switch to PHP 5.6+.

“Given that we’re still releasing security updates for WP 3.7 (released almost 7 years ago), it’s not like we’re leaving PHP 5.6 or 7.0 users without security updates, they just won’t have some latest and greatest features of WP 5.6+, which seems fair,” he said in the comments on the WordPress 5.6 announcement.

“This is obviously a key philosophical decision that should be made by the project lead,” tweeted lead developer Andrew Nacin. “And for what it’s worth, our philosophies and standards on this have been consistent for more than a decade. The numbers strongly suggest it’s too early to drop PHP 5.6.”

While there are certainly arguments to looking at the data in different ways, one of WordPress’s guiding philosophies has been making the platform accessible to as many users as possible over the years. This has meant taking a slow, deliberate approach while also reaching out to web hosts and users alike. Dropping support for old versions of PHP has not been nearly as fast as some — including me — would like.

The need for updating the minimum version of PHP is not simply about developers wanting to use the newest and shiniest tools. There are practical concerns. PHP 8.0 is slated for release on November 26, 2020. Regardless of WordPress’s minimum required version, it must also work with the most up-to-date version of PHP. The wider the range of versions that the platform supports, the harder it is to test.

Such is the case with PHPUnit, a testing framework for PHP applications like WordPress. PHPUnit 8 supports a minimum of PHP 7.2. Technically, it has syntax that requires PHP 7.1 — hence, the need for the WordPress version bump. PHPUnit 9 requires a minimum of 7.3 and is necessary for testing PHP 8.0 compatibility. There is an open ticket for solving issues with PHPUnit testing where the team is exploring options to support the range of PHP versions.

“We also need to work on our messaging around these PHP and core upgrades, so we don’t cry wolf and cause these notices to be ignored,” continued Mullenweg in his explanation for closing the ticket, pointing to the current site health messaging in WordPress. “They do not say what version it is currently on. They do not provide a good way to contact the host. They do not give accurate information about security, as most hosts run backports that patch security on older versions separate from what is officially supported by the core PHP project. These are not free upgrades, and I think the cost vs what we are able to deliver to users, vs the hard caused by leaving so many people behind, needs to be seriously weighed. Right now it feels like we’re a bit trigger happy on these requirements, and I’d even be open to rolling some back.”

WordPress may be joked about in “real” programming circles. Its reliance on outdated tools may be the punchline from developers who are building sites with the Next Big Thing. However, maybe in spite of or maybe because of the platform’s reluctance to quickly drop support for older versions of PHP, it has swallowed up 38% of the web. Any project lead would question meddling too much with its leave-no-users-behind formula that was part of the journey getting here.

It is a tough call for a project lead to make. It is also tough because developers like Folmer have put a ton of work into PHP coding standards tools and do the often thankless job of advocating for pushing WordPress into modern-day coding practices.

WordPress is in a position where it has some leverage. If the software demands an upgraded PHP experience, it can put its massive user base to work by forcing web hosting companies to cater to their needs. Money talks, and if enough users begin looking for greener pastures, perhaps those web hosts will make some adjustments. That is at least the theory that some in the community share. “If there are no consequences to user/host (in-)action, why would they ever bother to take action?” asked Folmer.

It is also a gamble that the WordPress project does not look to be taking, at least for the version 5.6 release.