PR-6.1-dev Pending

User tests: Successful: Unsuccessful:

avatar HLeithner
HLeithner
9 Feb 2026

Based on the Pull Request #45062 .

Summary of Changes

Add lazy loading to all plugins

Testing Instructions

Test if joomla still works, every situation where a plugin is in the game.

It's unlikely that all cases can be tested. Deeper testing will likely be done in beta1 to rc1.

Also code review should be done.

Actual result BEFORE applying this Pull Request

Works

Expected result AFTER applying this Pull Request

Still works, with less memory usage and less cpu cycles (fast).

Link to documentations

Please select:

  • Documentation link for guide.joomla.org:

  • No documentation changes for guide.joomla.org needed

  • Pull Request link for manual.joomla.org:

  • No documentation changes for manual.joomla.org needed

avatar HLeithner HLeithner - open - 9 Feb 2026
avatar HLeithner HLeithner - change - 9 Feb 2026
Status New Pending
avatar joomla-cms-bot joomla-cms-bot - change - 9 Feb 2026
Category Front End Plugins
avatar HLeithner HLeithner - change - 9 Feb 2026
Title
[6.1] Lazyload all plugins expect combat plugin
[6.1] Lazyload all plugins except combat plugin
avatar HLeithner HLeithner - edited - 9 Feb 2026
avatar tecpromotion tecpromotion - change - 10 Feb 2026
Title
[6.1] Lazyload all plugins except combat plugin
[6.1] Lazyload all plugins except compat plugin
avatar tecpromotion tecpromotion - edited - 10 Feb 2026
avatar HLeithner HLeithner - change - 10 Feb 2026
Labels Added: PR-6.1-dev
avatar lemuelvdm lemuelvdm - test_item - 10 Feb 2026 - Tested successfully
avatar lemuelvdm
lemuelvdm - comment - 10 Feb 2026

I have tested this item ✅ successfully on c11d811

Tested these changes on a Joomla 6.1.0-alpha3 system and all the plugins I tested still works as expected.


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/46862.

avatar HLeithner
HLeithner - comment - 10 Feb 2026

I convert this to draft because there are some language autoloading issues.

avatar Fedik
Fedik - comment - 10 Feb 2026

You discovered a bug in com_scheduler.
The component should load translations from .sys.ini , in the same way as it don in Plugins component:

protected function translate(&$items)
{
$lang = Factory::getLanguage();
foreach ($items as &$item) {
$source = JPATH_PLUGINS . '/' . $item->folder . '/' . $item->element;
$extension = 'plg_' . $item->folder . '_' . $item->element;
$lang->load($extension . '.sys', JPATH_ADMINISTRATOR)
|| $lang->load($extension . '.sys', $source);
$item->name = Text::_($item->name);
}
}

avatar HLeithner
HLeithner - comment - 10 Feb 2026

depends if you see it a bug, actually the plugin is created and loads the language

avatar Fedik
Fedik - comment - 10 Feb 2026

Plugin should load only language that need for its runtime, nothing more.
That why we have .sys.ini

avatar Denitz
Denitz - comment - 11 Feb 2026

@HLeithner System Logout plugin destroys own cookie in constructor.

To be honest, I don't understand how this cookie can help with plugin behavior:

The system logout plugin enables Joomla to redirect the user to the home page if they choose to logout while they are on a protected access page.

This cookie is only destroyed and set in this plugin and seems like not used anywhere else in the code.

Won't the logic be broken if constructor execution is delayed?

avatar joomla-cms-bot joomla-cms-bot - change - 11 Feb 2026
Category Front End Plugins Administration Front End Plugins
avatar HLeithner
HLeithner - comment - 11 Feb 2026

@HLeithner System Logout plugin destroys own cookie in constructor.

To be honest, I don't understand how this cookie can help with plugin behavior:

The system logout plugin enables Joomla to redirect the user to the home page if they choose to logout while they are on a protected access page.

This cookie is only destroyed and set in this plugin and seems like not used anywhere else in the code.

Won't the logic be broken if constructor execution is delayed?

I'm not sure what this cookie does... I remove lazyloading from the plugin for now.

the commit messages from the svn was "[#23208] Logout from edit screen gives 403"

earlier it registered an error handler for 403
image

I looked at the PR when JError has been removed.
In this pr the error handler has been remove and if I didn't overlooked something drives this plugin obsolete and can be removed.

@laoneo might remember if the functionality has been recreated somewhere else. (redirect logout users if they are in a protected area)

avatar brianteeman
brianteeman - comment - 11 Feb 2026

is this relevant #43638

avatar HLeithner
HLeithner - comment - 11 Feb 2026

is this relevant #43638

yes

a Pull request for 7.0 would be good to remove this plugin

avatar laoneo
laoneo - comment - 11 Feb 2026

@HLeithner don't think so that the functionality has been recreated somewhere else about the error stuff. But not sure.

avatar Denitz
Denitz - comment - 11 Feb 2026

@HLeithner Just curious, did you measure the performance changes with this PR?

avatar HLeithner
HLeithner - comment - 11 Feb 2026

didn't measured it yet, also performance might not be the main point, we reduce memory footprint, especially when languages are not loaded.

avatar tecpromotion tecpromotion - change - 13 Feb 2026
Status Pending Fixed in Code Base
Closed_Date 0000-00-00 00:00:00 2026-02-13 08:27:47
Closed_By tecpromotion
avatar tecpromotion tecpromotion - close - 13 Feb 2026
avatar tecpromotion tecpromotion - merge - 13 Feb 2026
avatar tecpromotion
tecpromotion - comment - 13 Feb 2026

To get more testers and 3rd party devs can test this, we've merged this for the beta1 release.
Thanks @HLeithner

Add a Comment

Login with GitHub to post a comment