mirror of
https://github.com/moodle/moodle.git
synced 2025-05-01 22:18:03 +02:00
MDL-82747 core: Provide a standard way to register the Autoloader
This commit is contained in:
parent
cc2edf3b8c
commit
2243d1b395
@ -177,6 +177,7 @@ $CFG->admin = array_pop($parts);
|
||||
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
|
||||
|
||||
require_once($CFG->libdir.'/classes/component.php');
|
||||
|
||||
require_once($CFG->libdir.'/classes/text.php');
|
||||
require_once($CFG->libdir.'/classes/string_manager.php');
|
||||
require_once($CFG->libdir.'/classes/string_manager_install.php');
|
||||
@ -192,13 +193,8 @@ require_once($CFG->libdir.'/adminlib.php');
|
||||
require_once($CFG->libdir.'/componentlib.class.php');
|
||||
require_once($CFG->dirroot.'/cache/lib.php');
|
||||
|
||||
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
|
||||
// Required because the database checks below lead to session interaction which is going to lead us to requiring autoloaded classes.
|
||||
if (defined('COMPONENT_CLASSLOADER')) {
|
||||
spl_autoload_register(COMPONENT_CLASSLOADER);
|
||||
} else {
|
||||
spl_autoload_register('core_component::classloader');
|
||||
}
|
||||
// Register our classloader.
|
||||
\core_component::register_autoloader();
|
||||
|
||||
require($CFG->dirroot.'/version.php');
|
||||
$CFG->target_release = $release;
|
||||
|
11
install.php
11
install.php
@ -218,13 +218,9 @@ require_once($CFG->dirroot.'/cache/lib.php');
|
||||
//the problem is that we need specific version of quickforms and hacked excel files :-(
|
||||
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
|
||||
|
||||
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
|
||||
// Required because the database checks below lead to session interaction which is going to lead us to requiring autoloaded classes.
|
||||
if (defined('COMPONENT_CLASSLOADER')) {
|
||||
spl_autoload_register(COMPONENT_CLASSLOADER);
|
||||
} else {
|
||||
spl_autoload_register('core_component::classloader');
|
||||
}
|
||||
// Register our classloader.
|
||||
\core_component::register_autoloader();
|
||||
|
||||
|
||||
require('version.php');
|
||||
$CFG->target_release = $release;
|
||||
@ -653,4 +649,3 @@ echo '</div>';
|
||||
|
||||
install_print_footer($config);
|
||||
die;
|
||||
|
||||
|
@ -129,6 +129,17 @@ class core_component {
|
||||
'Invoker' => 'lib/php-di/invoker/src',
|
||||
];
|
||||
|
||||
/**
|
||||
* Register the Moodle class autoloader.
|
||||
*/
|
||||
public static function register_autoloader(): void {
|
||||
if (defined('COMPONENT_CLASSLOADER')) {
|
||||
spl_autoload_register(COMPONENT_CLASSLOADER);
|
||||
} else {
|
||||
spl_autoload_register([self::class, 'classloader']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Class loader for Frankenstyle named classes in standard locations.
|
||||
* Frankenstyle namespaces are supported.
|
||||
|
@ -620,12 +620,8 @@ if (!empty($_SERVER['HTTP_X_moz']) && $_SERVER['HTTP_X_moz'] === 'prefetch'){
|
||||
//the problem is that we need specific version of quickforms and hacked excel files :-(
|
||||
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
|
||||
|
||||
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
|
||||
if (defined('COMPONENT_CLASSLOADER')) {
|
||||
spl_autoload_register(COMPONENT_CLASSLOADER);
|
||||
} else {
|
||||
spl_autoload_register('core_component::classloader');
|
||||
}
|
||||
// Register our classloader.
|
||||
\core_component::register_autoloader();
|
||||
|
||||
// Remember the default PHP timezone, we will need it later.
|
||||
core_date::store_default_php_timezone();
|
||||
|
@ -1,6 +1,13 @@
|
||||
This files describes API changes in core libraries and APIs,
|
||||
information provided here is intended especially for developers.
|
||||
|
||||
=== 4.4.3 ===
|
||||
|
||||
* The Moodle autoloader should now be registered using `\core\component::register_autoloader` rather
|
||||
than manually doing so in any exceptional location which requires it. It is not normally necessary
|
||||
to include the autoloader manually, as it is registered automatically when the Moodle environment
|
||||
is bootstrapped.
|
||||
|
||||
=== 4.4.2 ===
|
||||
|
||||
* The `\core\dataformat::get_format_instance` method is now public, and can be used to retrieve a writer instance for
|
||||
|
Loading…
x
Reference in New Issue
Block a user