2011-05-15, 02:38:57
@ccagle8:
The GS 3.0 approach of disabling plugins does only work in some limited cases. It seems that only the hooks are disabled but the plugins are still loaded. This leads to several problems:
I like the idea of disabling plugins and it would simplify testing with/without I18N plugin immensely, if it worked correctly: If a plugin is disabled, it MUST NOT be loaded.
The GS 3.0 approach of disabling plugins does only work in some limited cases. It seems that only the hooks are disabled but the plugins are still loaded. This leads to several problems:
- Some plugins do checks when they are loaded, which cause problems on some systems. Disabling the plugin does not remove the problems
- Templates might still call the functions (as the plugins are loaded) - the user might get no error message but wonders why the output is wrong. E.g. I18N will still output the navigation, but it will never be updated because the savechanges hook is never called.
- Plugins check for the existance of other plugins, e.g. the I18N plugin, by checking if a function exists. It does exist, but the plugin might return invalid results or even produce errors (see above)
- Users don't always report they have disabled plugins, as they expect (rightly) that a disabled plugin does not influence the system - thus it is much harder to find some errors.
I like the idea of disabling plugins and it would simplify testing with/without I18N plugin immensely, if it worked correctly: If a plugin is disabled, it MUST NOT be loaded.