Joomla 3.8 has been released and it's time to update your sites.
Much of the energy in the Joomla project is going towards Joomla 4, but there still new features arriving in 3.8.
The headline improvement in 3.8 are new URLs that will make Joomla more search engine-friendly, but there are several interesting new features for developers.
New SEO-Friendly URLs
Joomla 3.8 will bring major changes to the URL structure of new Joomla sites.
First, to understand how important this improvement is, let's see a current Joomla URL:
example.com/category-alias/99-article-alias
In the previous line, 99 is the article ID number. However, 99 has no meaning to search engines or human visitors. The new Joomla 3.8 routing system will remove the ID number to generate cleaner URLs:
example.com/category-alias/article-alias
Want to find out more? Click here to read our full overview of the new URLs.
Install sample data at any time
Joomla 3.8 makes it possible to install sample data after finishing the installation process.
There are two parts to this new features:
- Plugins to contain the sample data
- An administrator module to display the sample data options
If the administrator module is published, users will see an option like the image below:
Click on "Blog Sample data" and Joomla will install the sample data for you:
This we will be useful for companies such as Joomlashack. We could create plugins that provide easy-to-install sample data for templates and extensions. At the moment, we have to provide an entire site, or the database for an entire site. Creating small plugins for sample data is a much more elegant option.
Joomla 4 compatibility layer
Joomla 3.8 starts the process of moving Joomla's code to Joomla 4.
The Joomla 4 will rely heavily on namespaces, a PHP feature that Joomla has mostly lacked until now. Starting in 3.8 the majority of the Joomla library classes will start to use the namespaced class names. This means that developers can start using some Joomla 4 concepts in their Joomla 3 extensions.
Existing class names will still be supported thanks to class aliases, and this will continue until Joomla 5.0.
Joomla's libraries will also be moved to a new directory. The majority of the files in the libraries/cms and libraries/legacy directories will be automatically moved to a new libraries/src directory.
If you're interested in this topic, read "Looking Forward with Joomla 4".
Improved processing for encrypted data
Joomla 3.8 will include the new Sodium extension for processing encrypted data. This is a reaction to changes in PHP 7.2 which is dropping the mcrypt library and adding Sodium to its core releases.
Before writing this blog post, I didn't understand much about Sodium, but Michael Babker was a huge help, and so were these two links:
- Let's Make 2017 the Year of Simply Secure PHP Cryptography
- Friend or FOE: the software update conundrum (YouTube video with Nick from Akeeba)
In short, the addition of Sodium means that the Joomla core and extension developers will be able to provide more secure updates, starting with Joomla 3.9 or 4.0.
As for Joomla 3.8, Joomla's existing encryptor classes have an mcrypt dependency, so that needs fixing now because mcrypt is being removed from PHP.
Click here for more details on Sodium in Joomla.
Other new features in Joomla 3.8
- Filter articles by tags
- Filter admin modules by language
- Add a CSS class option to images in menu links
- New plugin group: pagecache