The Backward Compatibility Plugin and why you should switch it off
Joomla! 5 is there and it brings a lot of improvements. One of them is the “Behaviour - Backward Compatibility” plugin. It’s not a feature you can see in backend or frontend, so what is the purpose of this plugin? Let’s answer the most important questions!
Why was this plugin added to Joomla 5?
Over the last 10 years, the Joomla core modernized many areas of the code. That means certain outdated class structures became obsolete and shouldn’t be used anymore. In Joomla we have a well defined backwards compatibility definition. That means these classes cannot be removed before Joomla 6. But a lot of old, unused classes means slower core and a lot of overhead. On the other hand, having these classes still in core offers a backwards compatibility layer which allows extensions which do not follow the current state of the art of Joomla Development. So extensions from Joomla 3 still run on Joomla 5.
But what about the people who do not use extensions with this older code? In Joomla 4 they have code loaded, which is not used. So the idea is to move all this code to a plugin, which can be disabled when not needed.
What are the benefits of disabling the plugin?
The biggest benefit of disabling the plugin is a big performance boost. Without the plugin the old code is not registered and will never be loaded. You can be sure you have no extension installed which uses old code and you have a higher chance to have a smoother update to Joomla 6.
Where can I find this plugin?
The Backward Compatibility plugin is automatically activated upon upgrading from Joomla 4 to Joomla 5 or on fresh installs. The “Behaviour - Backward Compatibility” plugin is located in the plugin group behaviour. You find the plugins, when you go via the “System” menu item to the plugins area in your backend.
Do I need the Plugin?
That depends on the extensions installed on your website. So there is only one way to find out: disable the plugin, but of course not on your live site. Make a copy of your site and try it in your test environment. It’s recommended to enable the debug mode before you disable the plugin to see better error messages when something is going wrong.
No error? Perfect, you can try to disable it now on the live site (don’t forget to backup before) and you’re good to go.
Find an error? There are several ways to get your site back:
- Check which extension is responsible for the error and either check if there is a new version of the extension available or find an alternative for it.
- Go to the plugin manager in the backend (System => Plugins) and enable the plugin again.
- If the plugin manager is blocked by an error message, you can restore your backup or access the database via e.g. phpMyAdmin and enable the plugin. Find it in the #__extensions table and change “enabled” from 0 to 1.
What should I do when a 3rd party extension does not work without the plugin?
Don’t disable the plugin ?
For now it’s OK to have the plugin activated, if the performance impact on your site is acceptable for you. But you should either check the developers’ site if there are any plans to get rid of this old code or you should look for alternative extensions to replace the current one.
If my site works with the plugin disabled, does that mean it's Joomla 6 ready?
That’s hard to predict, as Joomla 6 is in an early development phase. Based on the backwards compatibility promise, Joomla 5 sites that work without the plugin have a better chance to have a smooth update process. Having said that: there could always be future changes which can’t be avoided and break something. Right now all we can say is: if your site is not working without the plugin, it will certainly not work with Joomla 6. So it’s still recommended to get a site with disabled plugin as soon as possible.
Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project
By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/
Comments 7
Thank you so much @benjamin for this very useful article!
I have just tried to disable the Backward Compatibility plugin on all my J5 websites.
Here are the extensions (that I personally use) which will crash your site at the moment if you disable the Backward Compatibility plugin:
So if you use any of these 4 extensions, you already know that you should wait for a new version before disabling the Backward Compatibility Plugin
The last sentence "So it’s still recommended to get a site with disabled plugin as soon as possible." scares me a lot. What the f******.
We already had major issues upgrading clients from 3 to 4. Than to soon came 5, which was luckely mostly easy in most cases and now we can expect already Joomla 6 soon with more upgrade problems??
Where are the 5 to 7 years release cycles? Wordpress does not do this f.e. To much changes will drive people away of Joomla. I'm a happy customer since 2005 but lately Joomla scares me. Can't run a business like this.
Hi Gasoline, Joomla 5 will be supported until 2027. So there's absolutely no need to panic yet.
Between your complaints about the release cycles I read this "Than to soon came 5, which was luckily mostly easy in most cases".
I'm glad that went well, because given your comment below this article: https://magazine.joomla.org/all-issues/april-2023/joomla-5,-find-out-who-is-in-the-driving-seat and this one: https://magazine.joomla.org/all-issues/october/updating-a-rather-complex-site-to-joomla-5-0-0, you weren't so sure about that.
This article is not meant to scare anyone away. It's mainly an encouragement to keep your sites up to date and get rid of deprecated stuff. That is a good thing: there is absolutely nothing wrong with safe and secure websites.
I've run the London Joomla User Group for over 15 years, and on Tuesday evening's meeting after the security release, the audience started to talk about the successful updates and were saying how much better it has got for both Major and Minor releases. Several were users and admins from Mambo days, and they were praising not only the smoothness of most updates but the release cycle, as the more regular we have, the smaller the steps in each.
With the roadmap planned 2 years, when before 4 the day of any release was a secret until it landed, and the 6 week regular interval, for updates, 6 months for Minors and 2 years for majors, similar to many other professional software packages such as Ubuntu, planning has never been easier.
If you have any issues, then why not share them in monthly meetings such as JUGL, which can help you if you are having issues?
I have over 100 clients, some large institutions, and they really like the professional way it all happens; it gives them confidence and reassurance that they are regularly updated.
After reading this article, I thought I'd try disabling the "Behaviour - Backward Compatibility" plugin in my staging/test environment. I enabled debug mode, disabled the plugin, and immediately got an error message in the Admin backend:
An error has occurred
0 Class "JPlugin" not found
I got the same error when I refreshed the front end.
As I couldn't enable the plugin in the Admin backend, I followed the instructions to reset the test website via phpMyAdmin, finding the #__extensions table and changing "enabled" from 0 to 1.
Unfortunately, this didn't work for me, and it looks like I'll have to restore a backup of the website.
So, please follow the article's guidelines and only try disabling the "Behaviour - Backward Compatibility" plugin in a test environment.
Here are some news related to the 4 extensions I was mentioning above.
Indeed I contacted the respective developers to ask when a J5-native version would be released (ie not requiring the Backward Compatibility plugin) and here is their answers :
Convert Forms (and NRFramework which is part of it) by Tassos
"All our extensions will be Joomla 5 native within the next set of stable releases. Stay tuned here for more announcements. The next extension that will receive its Joomla 5 native version will be Google Structured Data, followed by Advanced Custom Fields, and finally Convert Forms."
Acymailing by Acyba
Answer by Jeremy : "We try to keep AcyMailing compatible with Joomla 3, 4 and 5 at the same time, that's why we are still using previous versions of Joomla classes. I hope we can manage to update these classes without breaking the Joomla 3 compatibility as quite a few users still have j3 websites"
Dropfiles by JoomUnited
"We are planning to make the Dropfiles compatible with J5 native at the end of this year. We will let you know asap when it's ready"
LSCache (LiteSpeed Cache)
I contacted Wuhua at LiteSpeed yesterday on Slack (and also posted this on the forum: https://www.litespeedtech.com/support/forum/threads/joomla-5-compatibility.22549/#post-129197 ).
I am waiting for his answer.
Here is a little update after my last message in February listing extensions which still require to have the Backward Compatibility (b/c) plugin enabled.
Acymailing is now OK, just like Convert Forms by Tassos.
But today I migrated about 10 sites from J4 to J5 and disabled the b/c plugin on all of them to see what would happen.
Apparently, Droppics (JoomUnited) and Ecwid (the shopping platform) still require the b/c plugin...
If you know of any extension which still require the b/c plugin, feel free to add a comment below...
Droppics & Ecwid