Joomla 4, our next major version, is actively developed thanks to our great volunteer community. A lot has happened during the past months!
Before reaching the Beta cycle (which mostly means feature freeze), we wanted to share with you some important information related to:
- Technical requirements
- Improved search system
- New code style checker.
A raise of the Technical Requirements
The web industry moves fast and Joomla needs to act accordingly to stay at the top and satisfy its users. Therefore, we decided to raise the technical requirements for Joomla 4.
As Joomla 4.0 and Joomla Framework 2.0 have been in development for several years, we have decided to re-evaluate our supported software versions in order to optimise the CMS for the years ahead and to follow what our users are already using (information we’ve been able to use thanks to the users that enable our statistics plugin).
PHP minimum to PHP 7.2
7.2 and 7.3 are presently the only actively supported release branches of PHP, with PHP 5 no longer supported since December 2018 and PHP 7.1 only receiving security fixes until December 2019. By the time Joomla 4 is released, the oldest supported PHP version, 7.2, will have less than a year remaining of security support. This allows us to take advantage of the native PHP sodium encryption without a polyfill, as well as void type declarations which are going to be useful for the new interfaces in Joomla 4. Whilst choosing this version it was useful for us to note from the statistics plugin there were twice as many users on PHP 7.2 than 7.1.
MySQL minimum to 5.6
5.6, 5.7 and 8.0 are the currently supported versions of the MySQL database. Version 5.5 reached its end of life in December 2018, while MySQL 5.6 will be supported until February 2021.
Note that the minimum MySQL version can be subject to change during the lifetime of Joomla 4, if necessary, as in the future we might look to use MySQL 5.7 which would allow the use of the JSON database type in MySQL columns.
PostgreSQL minimum to 11
A new major version of PostgreSQL is released once a year and contains new features. At least once every three months the major version receives bug, and if need be, security fixes.
At times we’ve found it hard to support all the different available versions of PostgreSQL. Therefore to make Joomla 4 more stable and because nearly half our current PostgreSQL users are already on version 11, the choice was made to only support the latest version 11 and higher (version 11 will reach EOL in November 2023).
Drop support for Internet Explorer
The decision to drop support for IE was based on a few criteria. Less than 5% of the internet users browse the web with Internet Explorer. The new Edge browser (based on Chromium) will have an IE compatibility layer that will drive IE usage further down.
Does this mean that Joomla 4 will not work in IE? Yes and No!
The Joomla 4 backend template won’t support IE, therefore you’ll need another browser to install/maintain a website. The same is true for the core frontend template, Cassiopeia, as it will not support the IE requirements, so you can expect some display issues. However, it can be solved by creating or installing a template that supports IE.
How will this impact the core code?
As we phase out PHP 5 support, there are numerous features and optimisations that we can make in our code. Many of these changes can be made without impacting the existing public API. However some features (for example, scalar type hinting) would introduce backward compatibility breaks, if accepted.
Therefore, we will be adapting the following policies as it relates to Joomla 4.0 and Joomla Framework 2.0, for new and existing code:
- All new classes and methods in the new major versions may make use of all features available in PHP 7.2, including scalar type hints and return type declarations
- Private methods and methods in final classes (which cannot be extended by definition) may be updated to use PHP 7.2 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)
- The core base dropped the use of complicated polyfills, just to support IE, for CSS variables and flexbox.
One Single and Improved Search System
As a major version, we are evaluating all extensions and concepts to try to make life simpler for every Joomla user. One issue in Joomla since the 2.5 release has been search. Joomla 4.0 will make a big step forward and we want to tell you all about it.
What is the problem?
For years Joomla provided two search systems.The first one is Search (or com_search), which stems from Mambo times and has not really evolved since then. The other one is Smart Search (or com_finder) which was graciously donated for Joomla 2.5, but wasn’t 100% polished.
Two completely separate systems for the same task does not make it easy for users and often leads to confusion. Without mentioning that core developers have to support both systems.
What is the difference between Search and Smart Search?
Search is a very simple system that calls a group of plugins to do a naive search in the database for the search term and return a series of results. They react on every mention of that term, but also only on that exact term. If you have a lot of data and search plugins, this can affect your site’s performance. The results are not ordered but the code needed to make such a plugin is simple.
On the other hand, Smart Search is an index-based search. Searching an index has a lot of benefits, ordering results by relevance, a sort of fuzzy search, where variants of words are searched and less performance impact. The Smart Search system is more powerful but requires a bit of work as you need to build the index.
What did we do?
In the last year, Smart Search has had a complete overhaul. We improved the data structure and the way Smart Search did the actual search to greatly improve the performance. We fixed several long standing bugs and polished the taxonomy system. Most importantly we fixed many bugs relating to multi-language support.
With all these changes, Smart Search will provide you with the best search results. Therefore, we decided to remove the simple Search system from Joomla 4.0 core.
We take this opportunity here to thank cloudaccess.net who partly funded the improvement of the Smart Search system.
How do I upgrade from Search to Smart Search?
The two systems are very different and there is no real way to upgrade one to the other with the click of a button. If you are currently using Search on your site and want to switch to Smart Search, you will have to set up the system. Don’t panic, it is easier than it sounds: Enable the plugin, create an index of your content (it’s just one click!) and make your search available for your visitors by creating a menu item or a module (or both).
For more information about Smart Search and how to set it up, click on the Help button in your backend.
We encourage our extension developers to start creating Smart Search plugins for their extensions as soon as possible to satisfy their users.
But I need the old Search!
If you really don’t want to switch to Smart Search, you will still be able to install the legacy Search system as a separate extension on new Joomla 4 sites. This package will be available on the Downloads site (https://downloads.joomla.org) and will be maintained for the lifetime of Joomla 4. If you are upgrading from a Joomla 3 site then we will not remove the old search - just like when we removed Weblinks back in Joomla 3.3.
Auto Fixing Code Style Errors
With the implementation of PHP CodeSniffer 2.x, is the ability to automatically fix many code style errors. Our custom sniffs in the coding standard have also added this autofixer ability. This should save developers and the Joomla projects a great deal of time in ensuring code standard compliance without manual intervention. We are already working on the migration to PHP Codesniffer 3.x to ensure we’re on the latest and greatest version in Joomla 4.
We’d like to give a big shout out to Walt Sorenson who has put a large amount of time into working on the codesniffer ruleset for Joomla. In the spirit of open source many of our Joomla tweaks have been submitted back to the codesniffer project.
We are firmly committed to make Joomla 4 the best generation. Embracing the above will help deliver the highest quality product for our users.