PHP is an ever evolving languages. As older versions of PHP become end of life we gradually terminate support for them. In this announcement we detail the when and the why of this.
IMPORTANT: This is NOT an April Fools joke.
When do we start supporting a PHP version family?
Typically we start officially supporting a new PHP version family when it reaches its second point (sub-minor) release. For example, we began supporting the PHP 5.4 version family when PHP 5.4.2, the second point release of this family, was released.
The exception to this rule is when the underlying CMS (Joomla! and WordPress) doesn't officially support this PHP version yet. In this case we can only support the new PHP version family 1 - 2 months after the CMS has officially started supporting it.
When do we stop supporting a PHP version family?
We stop providing support for a PHP version family (e.g. PHP 5.3) 9 to 12 months since it is announced to become end of life. In the official list of End Of Life PHP versions you can see when each PHP version family ("branch") became End Of Life (EOL). You should also consult the list of active PHP version families which tells you when active families will become EOL.
According to this information our plan for discontinuing support for different PHP versions which are still supported at the time of this writing (April 2015) is as follows:
- PHP 5.3 between May 14th, 2015 and August 14th, 2015.
- PHP 5.4 between June 14th, 2016 and September 14th, 2016.
- PHP 5.5 between March 20th, 2017 and June 20th, 2017.
- PHP 5.6 between May 28th, 2018 and August 28th, 2018.
Please keep in mind that this plan is irrespective to what is the minimum PHP version supported by the underlying CMS (Joomla! or WordPress) where applicable. For example, Joomla! 3 runs on PHP 5.3.10 or later but our components published after mid-August 2015 will REQUIRE PHP 5.4.2 or later. As you'll read below you should have already upgraded to a much newer PHP version already for many reasons.
Why do we stop supporting older PHP version families?
It all comes down to four very important reasons: security, performance, testability and maintainability.
Security. When a PHP version family becomes End Of Life it stops receiving security updates. In practice this means that 6 to 9 months after the EOL date there are known, high priority security issues which can and ARE used to actively compromise sites running on these obsolete PHP versions. Normally that would be your problem, but when we see you posting stern support requests blaming us for your site getting hacked – even though it wasn't our fault at all – we have no choice but to discontinue support for known vulnerable versions of PHP. This is where the 9 to 12 months figure comes from. Simply put, old cars didn't have airbags, smart deformation zones or even seatbelts. It doesn't matter how carefulyl you drive them. If someone rams you, by accident or malice, you're dead. That's why you need a new-ish for your daily commute.
Performance. Newer versions of PHP are signifficantly faster. We have measured the performance difference between PHP 5.2 and 5.4 when taking a backup to be 700%. This is not a typo! PHP 5.4 is seven times faster. A backup which used to take 5 minutes now completes in less than 45 seconds. This also has a major impact on your site's search engine rankings: the faster your site, the better it ranks in Google, Bing etc. There is a huge incentive for you as a site owner to upgrade to the latest version of PHP! Simply put, your old Audi 80 can't go as fast as the newest Audi A3. Racing with it will get you consistently into the last place.
Testability. When we say that we officially support a PHP version family it means that we are actively testing against it on Linux, Windows and Mac OS X. Unfortunately, as a PHP version becomes EOL it becomes increasingly difficult to get it to work on a test server since everything else, from the operating system to the web server software, needs to get upgraded to work with the newer PHP versions. This means that we're practically unable to test against a PHP version family 12-18 months since its EOL date. We could claim to support a PHP version and never test against it, but we think it's dishonest. Simply put, it's really hard to find a mechanic, let alone spare parts, for your 40-year-old car.
Maintainability. Newer versions of PHP offer the language features which allow us to evolve more complex features that are impossible without them. Simply put, wooden beams are fine for a five storey building but you can't build a skyscraper with them. You need steel beams and concrete. If you insist on using wooden beams the inevitable result is that the building will collapse.
Won't my site break with a newer version of PHP?
The short version is NO, IT WON'T.
Do you have any Joomla! extensions and templates / WordPress plugins and themes you haven't upgraded the last three years? If your answer is "no" then your site will definitely work perfectly fine with PHP 5.4, most likely fine with PHP 5.5 and probably fine with PHP 5.6. If your answer is "yes" your site is already hacked and you don't know it. Three years without an update on your site is like 30 years without maintenance on your car: if it still runs it's a miracle (or nobody visits it, not even malicious hackers)!
There is really no reason to not upgrade to at least the latest version of PHP 5.4 or even 5.5. It's 2015. All developers are developing their software on PHP 5.5 because, frankly, that's what the default PHP version is in virtually every pre-packaged local development stack the last two years. If you're using software which was developed more than three years ago chances are that PHP version compatibility is the least of your worries. We've yet to see the mythical software which can go more than two years without a security vulnerability being discovered, no matter how good the developer is. Don't take our word for us. Just ask Apple, Google and Microsoft, software corporations with arguably much better QA processes than any small software company can dream of.
What's that? Your host doesn't give you the option?! If your host doesn't support PHP 5.4 or later you are in DIRE NEED to switch hosts AS SOON AS POSSIBLE. The only servers we've seen being stuck on PHP 5.3 without the possiblity for upgrade are some ancient servers, set up 6 years ago, stuck with the extremely old PHP 5.3.3 version Debian "stable" had to offer at the time. This is like using Android 1.5, iOS 3.0 or Windows Mobile 6, also released that era. You can't reasonably expect to run modern mobile apps on smartphones running these operating systems so why would you want your site to run on an equally obsolete environment and pay for it?
I don't care what you say, I still want to use PHP 5.3!
OK, I get it. You want to use an ancient PHP version, susceptible to known security issues. You want your site hacked. You want your site ranking at the far bottom of Google. You want your site barely usable. You want to stick with OLD SOFTWARE.
Good(-ish) news for you. We do make available our obsolete versions with extremely limited support. You can download and install them on your site. Just take a look at our Compatibility page You can even request some support regarding using them. However, you should not expect us to provide any of the following:
- New features. As explained above, new software features require new language features. That's why we dropped the obsolete PHP version, we couldn't provide new features with it!
- Security updates. We try our best to provide security updates to obsolete versions but this may NOT always be possible. It's the testability issue outlined above. If we can't test the fix we can't provide one. Bummer.
- Bug fixes. No bug fixes will be provided to old versions. We may tell you that you can't use a feature or that you have to use only a subset of its capabilities.
- Updates regarding third party services integration. For example integration with Dropbox or Amazon S3 in Akeeba Backup. Third party services tend to change their APIs every 2-5 years. This requires us to write a new integration feature using their newest API / SDK which, guess what, requires a newer PHP version to work.
- Updates regarding new CMS versions which still run on your obsolete PHP version. For example, if Joomla! 3.9 (just a random number!) is released, still supporting PHP 5.3.10 while our software requires PHP 5.4 or later and our old, obsolete versions which used to be compatible with PHP 5.3 don't work on it: tough luck. This has not happened in nearly nine years, but who knows?
Any chance you might not follow your PHP version support roadmap and still support PHP 5.3?
There is a small chance, but don't count on it.
For example, we might not drop PHP 5.3 support between June and August 2015. We might drop it in October 2015 or June 2016. Dropping the support after the announced data depends on several factors:
- Can we still test on PHP 5.3? If we're unable to run PHP 5.3 on our Vagrant-based virtual testing server we have to stop supporting PHP 5.3 no matter what.
- Will Joomla! and WordPress support PHP 5.3 in the upcoming releases? It seems so, but if they do drop PHP 5.3 support there's obviously no way for us to support PHP 5.3.
- Can we keep on developing software without using PHP 5.4 features such as Traits? So far we're able to do that. I can't predict for how much longer. Possibly another year, but probably not longer than that.
- How many of you will still be using PHP 5.3 on up to date sites? The percentage shrinks by 3% each month, with the rate of conversion already increasing. At this rate there will be no practical reason to support PHP 5.3 by the end of the year. Do keep in mind that we only measure the number of people using the latest versions of Joomla!/WordPress and our software. People stuck on old software are stuck on old software and by definition can't be part of our decision regarding new versions.
- When will PHP 7.0 (the successor to PHP 5.6) be released and how does it affect our code? Obviously we'll have to support PHP 7.0 when it's released. If doing that means that we have to break compatibility with PHP 5.3 then we'll have no second thoughts on discontinuing PHP 5.3 support.
Therefore you should only count on PHP 5.3 being supported until August 2015. Every month after that makes it more likely that our latest versions WON'T run on PHP 5.3. Considering everything we said you should really start migrating your sites to PHP 5.4 (ideally: 5.5) as soon as possible. It will be to your benefit in terms of security and SEO anyway.