Upgrading our minimum PHP requirements

TLDR: From July 1st 2019, our extras will require PHP 7.1+.

Our extras currently require PHP 5.5+. As PHP has been rapidly evolving over the years, with PHP 7.3 released just a month ago and 7.0 already end of life, we're now implementing a rolling schedule for the versions of PHP we support.

The oldest officially supported PHP version is currently 7.1. To make sure you have enough time to upgrade your servers, here's our planned rollout:

Date Minimum increased to Percent of sites affected
July 1st, 2019
(6 months from now)
7.1 45%PHP 5.6 and 7.0 will have been end-of-life for 6 months.
March 1st, 2020
7.2 78% PHP 7.1 will have been end of life for 3 months.
November 30th, 2020 7.3 99.6% Official end-of-life date for PHP 7.2. Right on schedule!

From November 2020, we'll follow the official PHP timeline. PHP currently uses a 2 year active support + 1 year security support schedule, which is a fair balance between supporting the latest and greatest and supporting older sites.

Note that for new extras or major updates that come out before July, we may start requiring PHP 7.1.

Why break version/backwards compatibility?

Backwards compatibility is a wonderful thing, allowing you to focus on what you do best and not having to worry about specific server configurations. But it also holds back innovation. There are many great features in the PHP 7.x series that would help us deliver better and more stable products. It's a lot more performant too.

While we've had a rolling version support plan for MODX versions for years, we never formalised a similar plan for PHP versions, leaving us in a situation where we still have to write code like it's 2013.

What is the percentage of affected sites based on?

When you use the package manager, we receive the PHP version you use. That data is stored and gives us insight into what versions people are actually using. The percentages in the table above are cumulative numbers for sites that connected to our package provider at least once in the past six months.

Which of my sites will be affected? How can I tell?

First of all, we recommend monitoring your sites with SiteDash. That gives you great insights into the health of your sites and informs you when sites are running unsupported versions of PHP.

Secondly, you can look at your licenses grouped by site. That will show you MODX and PHP versions for all sites that use our extras.

Some of my sites/servers need to be updated. Now what?

Talk to your hosting provider. Depending on where you're hosted and what control panel (if any) is available on your server, it may be as easy as two clicks to change to a more recent version of PHP. If your host is unable to offer at least PHP 7.1 by July, it's a good idea to start looking around for hosts that offer more recent versions.

In some cases, you may need to do some work on your site or application to get it ready for newer versions of PHP. MODX and most (if not all) extras work fine, but any custom tools or integrations may require additional work. The PHP Compatibility Checker can be useful if you're not sure where to start.