The servehappy project is an initiative that seeks to educate WordPress site owners about the value of having the latest version of PHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher powering their WordPress site. This supports the overall goal of increasing the percentage of WordPress installs running modern PHP versions.
One of the core Core is the set of software required to run WordPress. The Core Development Team builds WordPress. tenets of WordPress is backwards compatibility. Support for PHP 5.2 is and has been part and parcel of that tenet. Over the years however, there has been increasing tension within the WordPress developer community on this support for PHP 5.2 between those who support keeping the minimum PHP version requirements the same for WordPress core, and those who want to increase the minimum PHP version requirements for WordPress core. There have been numerous arguments made for either side and you can follow some of the discussion here.
Beginning around mid 2017, there were a number of discussions initiated (in various channels) about resolving some of this tension and keeping WordPress as a project moving forward with PHP language related topics. Out of these discussions, a number of initiatives were started that support the overall initial goals of:
- Encouraging Web host providers to provide the latest PHP versions and provide an upgrade path for their customers to get on the latest versions (this is something that has been happening for a while now)
- Educating site owners about PHP and why PHP version matters.
- Decreasing the amount of reported WordPress sites running older EOL (End Of Life) versions of PHP.
Once these goals have been reached, then it becomes possible to more practically begin discussions about:
For clarity, its worth re-iterating here, that the immediate goal of the latest PHP initiatives (of which the servehappyproject is a part) is not to raise the minimum requirements for PHP in WordPress core. The immediate goal is to put in place supporting structure and site owner education/resources etc so that we can more actively reduce the number of existing active WordPress sites on older PHP EOL versions and thus improve security and performance of the web.
We will endeavour to keep this document up to date, but for all the most recent information you will want to follow along at:
Big picture overview
The following table gives a high level overview of all the various components contributing to the servehappy initiative.
Note: all delivery dates are rough estimates only.
A more descriptive outline of some of the concrete deliverables associated with the servehappy initiative:
Information page about PHP versions and updates.
This page will live on WordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ and is intended to be referenced throughout the WordPress.org project and eventually linked to from the WordPress dashboard for sites not meeting a minimum PHP version requirement for the notice to appear.
Fatal error protection
When making changes to their site, fatal errors may occur, which tend to be hard to solve for non-technical users. Therefore, WordPress should be able to detect such errors and aid the user in fixing the underlying problem. In particular, this involves implementing a sandboxing mechanism where the plugin or theme causing the issue is temporarily paused in the admin. While this will still cause the “white screen of death” to be present on the site’s frontend, it allows the user to still log in to the backend and resolve the problem.
Admin notice in WordPress Dashboard
This admin notice will serve as a portal into more substantive educational pieces (linking through to the Information page about PHP versions and updates).
Minimum PHP version requirements for plugins and themes in core
The proposal is to allow plugins and themes to have a minimum PHP version requirement. This will involve work done in WordPress core and the WordPress.org plugin repository to support this. While there are multiple tickets for the individual parts of this, the umbrella trac ticket provides easy access to more details on this part of the project.
Collection of Benefits and Stats
Ongoing collection of benefits and statistical data is used to help sell the “update PHP” proposition to users. These have been collected as issues in the issue tracker and managed in the Benefits & Stats project board.
If you want to suggest a new benefit or stat, please create a new issue and label it accordingly.
Collection of various third-party articles and hosting resources
See the servehappy resources repository where there is an ongoing effort to collect a resource library of third-party articles, and PHP upgrade tutorials (including host specific tutorials) that can be utilized in other resources developed as a part of this initiative.
PHP Compatibility Checker
While not directly related to the servehappy initiative, the PHP Compatibility Checker is a free third-party plugin that allows site owners to check compatibility of their plugins and themes with specific PHP versions. In the current version of the draft, this plugin is recommended to be used as a prerequisite. The servehappy team has been collaborating with the developers of that plugin, to prepare it for that purpose.
Similar to the above plugin, the Tide Project will indirectly support the various efforts in process. It will particularly help with providing feedback to users about what plugins/themes they have in use on their site that might not be compatible with a PHP version being upgraded to. It is currently unknown what an integration could look like, due to the early stage the service is in.
See here for an overview of what the tide project is.
Join the project!
We have meetings every week in the core-php Slack channel, with the next meeting taking place on Monday at 16:00 UTC. Weekly recaps can be found under the servehappy tag.