Joomla! 3.7 is still in development but we’re already thinking forward and are calling contributors for Joomla! 4. This will be an evolution of the Joomla! series with the goals of improving the user experience, improving the code quality and reducing bugs.
Joomla! is constantly improving and evolving. But sometimes we need to do things that cause backwards compatibility breaks. Joomla! 3 has lived for 4 years in the wild (longer than any other major Joomla! version) and it’s time to clean the house outside and in once again!
We’d like to remind you not to panic about any existing sites! As per Joomla’s development strategy we will be continuing to support Joomla! 3 for 2 years after the last minor version of Joomla! is released (currently this is planned to be Joomla! 3.7).
We have pushed a branch to the Joomla! repository containing the starting point for many of these code improvements and to give a place for people to start submitting improvements.
We are looking for enthusiastic developers and designers to initially help us start to work on some of these concepts.
We will also be putting out a call for people to help us work out how we can help improve the workflows in the CMS shortly.
Here are some of the things we are going to be working on:
- Making the dashboard more customisable - we understand this is the first thing users see of Joomla! and the need for it to show users relevant useful information is hugely important
- Improved onboarding process for users. We understand that with the extra flexibility given by Joomla! it makes it harder to onboard new users. The help screens are not enough these days!
- Parameter Defaults Review - often when we’ve added new options to Joomla! we’ve had to set values to keep backwards compatibility in the system. We will review all the defaults in this release to ensure they remain relevant.
- New templates with Bootstrap 4 bringing an end to the reign of Bootstrap 2 (See (1) below)
- All HTML will be overridable - with JLayouts there is now no excuse for full customisability.
- Parameter reduction - we understand that large numbers of parameters mean that a lot of HTML is polluted by large amounts of PHP. We will actively look to reduce the number of parameters in Joomla! where it does not significantly impact the workflow.
Coding will be taking an evolutionary approach to Joomla! with the top level aims of making code more testable to reduce bugs, easier to approach for those involved in the PHP community without excluding people with limited coding experience and making the system as a whole easier to maintain.
Some examples of this are:
- A rewritten plugin system. This will make the plugin system similar to many existing event systems in prominent PHP projects and will provide a big performance boost!
- Bringing in Dependency Injection Containers instead of JFactory. These will vastly improve the testing framework within Joomla! and allow more flexibility for extension developers in the future.
- More components will use the Joomla! Framework - let’s maintain less code. The framework has lots of extra improvements so let’s start using them in Joomla!
- Code Namespacing - this will allow us to stop duplication of class names in the frontend and backend of components and lead us to a path towards HMVC.
- Code Deprecation - reducing the amount of code we have to maintain by removing legacy outdated code. Note that deprecations are being taken on a case by case basis. We will almost certainly not be removing everything marked as deprecated
Support here is provisional at this stage however we are planning on:
- PHP 5.5 Minimum Version
- MySQL 5.5 Minimum
- Drop of MS SQL support
- PostgreSQL 9.2 Minimum Version