BuddyPress lead developers have decided to bump the minimum PHP requirement for version 2.8 of the plugin to 5.3+. The new guidelines for BuddyPress’ PHP version support, authored by Boone Gorges on behalf of the team, states that the plugin will offer full support for all stable versions of PHP officially supported by the PHP project (currently, 5.6.x and 7.0.x). Gorges outlined what “full support” means:
- BuddyPress should run error-free (ie, without fatal errors or PHP notices) on the PHP version.
- If a new version of BP includes a feature that requires a more recent version of PHP, the feature should be gracefully disabled on earlier PHP versions.
- The PHP version will be included in the plugin’s automated testing build matrix.
The BP leadership team agreed that the project will provide basic support for legacy versions of PHP “until the cost-benefit ratio for supporting a given version suggests that it should be dropped.” That is the case with 5.2, which is currently in use on 7.6% of WordPress sites. Gorges acquired additional statistics from WordPress.org that indicate only 3.23% of BuddyPress sites are running on PHP 5.2:
Unknown - 1.08%
5.2 - 3.23%
5.3 - 12.92%
5.4 - 34.44%
5.5 - 22.38%
5.6 - 23.02%
7.0 - 2.92%
Another factor in the team’s decision is the project’s recent shift in focus towards developers and site builders, prioritizing building out the BuddyPress REST API.
“Coupled with these numbers is the recognition that PHP 5.3 introduced features that have a meaningful effect on our ability to write a modern PHP application: namespaces, closures, guaranteed access to SPL, late static binding, and so on,” Gorges said. “As BuddyPress aims to build a major new feature – a REST API – it frees us up significantly to be able to take advantage of these and other features unavailable in PHP 5.2.”
Gorges also explained why BuddyPress isn’t bumping the minimum version all the way up to 5.6, which is the oldest version for which the PHP project is still issuing security updates. With roughly three quarters of BuddyPress sites running on PHP versions 5.5 or older, a major jump to 5.6 would break the majority of sites using the plugin.
“For many (most?) people running BuddyPress, updating PHP is emphatically not a simple task,” Gorges said. “As such, we would simply lose these users, or cause them to stay on old and unsupported versions of BuddyPress. We support WordPress’ ongoing, progressive efforts to work with webhosts to move sites off of old versions of PHP.”
These changes will go into effect as of BuddyPress 2.8. In the meantime, contributors are working on adding a notice when activating BuddyPress on a site that doesn’t meet system requirements as well as preventing the plugin from being updated when minimum requirements are not met.