During 2017, we have heard a lot of opinions that this year has been too gloomy for Joomla. However, we think that this year is so important because it is the stepping stone for the explosion in 2018 when we prepare to welcome Joomla! 4.0 and Joomla! Framework 2.0. In addition to introducing several new features, including a fully rebuilt Media Manager, an enhanced event dispatching system, and new security features such as support for prepared SQL statements, we have also been doing some routine maintenance and paying off some of our project’s technical debt by retiring deprecated code and raising the minimum supported software stack. And, with this released version, we also require PHP 7.
Why PHP 7
Until this moment, PHP 7 is presently the only fully supported major version of the PHP language, one that required most software packages and extensions for the language itself to make updates to varying degrees. According to the data collected by going around and asking the community, since the system was launched in early 2016, there are approximately 17% of sites reported running a PHP 7 version. You might say that this figure is small but the statistics server contains data from all sites that have ever reported information and the public data includes sites that are no longer online or have opted to not send data any longer. When we analyzed the usage data of sites reporting a Joomla! 3.7 version, 42% of them are running a PHP 7 release. In 2017, we have also observed the sharp increase of sites running a PHP 7 release and the significant decrease of sites running PHP 5.5 or earlier. That’s the reason why PHP 7 is almost compulsory.
What if I can’t upgrade?
One thing I want to emphasize is Joomla! 3.9, our last scheduled 3.x release, will be supported for two years after its release. Therefore, when Joomla 4! is going to be released in 2018, it means that you can run your Joomla! 3 site comfortably until 2020. And in 2020, what will happen? It will be more urgent to upgrade as not only will your Joomla version no longer be supported, but most PHP versions that will run Joomla! 3 will be unsupported, as will many server software packages and distributions.
How will this impact the core code?
With Joomla! 3’s minimum PHP version being PHP 5.3.10, there are numerous features and optimisations that we can make in our code as we phase out PHP 5 support. There will be a lot of changes made without impacting the existing public API. When Joomla 4! will be released, you should care the following policies:
- All new classes and methods in the new major versions may make use of all features available in PHP 7, including scalar typehints and return type declarations
- Private methods and methods in final classes (which cannot be extended by definition) may be updated to use PHP 7 typing
- Public and protected methods in existing classes generally will not have their method signatures changed unless the change improves understanding and use of the code (for example, methods which could use variadic signatures)
- We are firmly committed to making the next generation of Joomla the best generation and feel that embracing PHP 7 going forward will help to deliver the highest quality product for our users.