MDL-64284 core: improved performance of component class searching
Added static caching of classes to reduce load times and reduce calls to `get_component_classes` by altering to accept a null component value to search classmap only once.
This commit is contained in:
@@ -650,22 +650,7 @@ class manager {
|
||||
// Just in case...
|
||||
$element = clean_param($element, PARAM_ALPHANUMEXT);
|
||||
|
||||
// Core analytics classes (analytics subsystem should not contain uses of the analytics API).
|
||||
$classes = \core_component::get_component_classes_in_namespace('core', 'analytics\\' . $element);
|
||||
|
||||
// Plugins.
|
||||
foreach (\core_component::get_plugin_types() as $type => $unusedplugintypepath) {
|
||||
foreach (\core_component::get_plugin_list($type) as $pluginname => $unusedpluginpath) {
|
||||
$frankenstyle = $type . '_' . $pluginname;
|
||||
$classes += \core_component::get_component_classes_in_namespace($frankenstyle, 'analytics\\' . $element);
|
||||
}
|
||||
}
|
||||
|
||||
// Core subsystems.
|
||||
foreach (\core_component::get_core_subsystems() as $subsystemname => $unusedsubsystempath) {
|
||||
$componentname = 'core_' . $subsystemname;
|
||||
$classes += \core_component::get_component_classes_in_namespace($componentname, 'analytics\\' . $element);
|
||||
}
|
||||
$classes = \core_component::get_component_classes_in_namespace(null, 'analytics\\' . $element);
|
||||
|
||||
return $classes;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user