There’s been some hubbub around PHP version support in WordPress world lately. Most prominently, Iain Poulson of Delicious Brain (makers of WP Migrate DB Pro) published a post telling plugin developers to stop supporting old versions of PHP. Then yesterday, our friend Josh wrote to tell us that he had made up his mind: Caldera Forms is dropping support for PHP versions 5.5 and below. WordPress itself is still written to (and proud to) run on PHP 5.2, although they’ve formally recommended more modern versions for a few years.
While it makes a cleaner story to say that Iain’s post convinced Josh, I know that’s not true. Josh has fought the quiet fight in back channels for dropping formal support for PHP 5.2, which WordPress Core still proudly does, for years. He’s also had concrete issues come up because of the need to span the distance from PHP 5.2 to 7.2, as he elaborates:
Recently I answered a support ticket, where a paying customer reported getting deprecated function warnings when using Caldera Forms calculation fields on a site powered by PHP 7.2. PHP 7.2 is the latest version of PHP. The reason we are using the function that is now deprecated by PHP is that, like WordPress core, we support PHP 5.2. As a result, the better solutions that have been added to PHP over the last decade are not available to us.
The topic of PHP versions is complex, and I’ll happily discuss those complexities with anyone. The Core team’s position has always been — fairly — that most WordPress site owner’s don’t know what PHP is and would be confused by having to update it. As such, they insist that to “leave no user behind,” WordPress should keep working for someone who bought hosting years ago and just keeps paying Bluehost, GoDaddy, etc for a site running on PHP 5.2.
Developers, myself included, think that some very good things about more modern version of PHP are impossible in the WordPress ecosystem because of 5.2 support. It would be great if we could just rip the band-aid off, gather WordPress, hosts, etc and get everyone to PHP 7. At least, that’d get many of them a huge performance benefit.
But compatibility is imperfect. And angry customers who will hold it against WordPress, their host, or someone else when a plugin they had written in 2009 breaks are nothing to ignore.
I salute Josh’s choice. I think given the reticence of WordPress Core team to fight the PHP version fight, we’re forced to rely on other players in the ecosystem to improve the situation. The folks at Yoast have made some progress in their efforts (they offer “please upgrade” banners if you run their plugin on an old version of PHP”, and I think Caldera’s move is even more bold and decisive. I hope it works out well for them :)