MediaWiki REL1_39
AutoLoader Class Reference

Locations of core classes Extension classes are specified with $wgAutoloadClasses. More...

Static Public Member Functions

static autoload ( $className)
 autoload - take a class name and attempt to load it
 
static find ( $className)
 Find the file containing the given class.
 
static getClassFiles ()
 Returns a map of class names to file paths for testing.
 
static getNamespaceDirectories ()
 Returns a map of namespace names to directories, per PSR4.
 
static getState ()
 Returns an array representing the internal state of Autoloader, so it can be remembered and later restored during testing.
 
static loadFile (string $file)
 Load a file that declares classes, functions, or constants.
 
static loadFiles (array $files)
 Batch version of loadFile()
 
static registerClasses (array $files)
 Register a file to load the given class from.
 
static registerNamespaces (array $dirs)
 Register a directory to load the classes of a given namespace from, per PSR4.
 
static resetAutoloadLocalClassesLower ()
 Method to clear the protected class property $autoloadLocalClassesLower.
 
static restoreState ( $state)
 Returns an array representing the internal state of Autoloader, so it can be remembered and later restored during testing.
 

Public Attributes

const CORE_NAMESPACES
 A mapping of namespace => file path for MediaWiki core.
 

Static Public Attributes

static string[] $psr4Namespaces = self::CORE_NAMESPACES
 Namespace (ends with \) => Path (ends with /)
 

Detailed Description

Locations of core classes Extension classes are specified with $wgAutoloadClasses.

Definition at line 31 of file AutoLoader.php.

Member Function Documentation

◆ autoload()

static AutoLoader::autoload ( $className)
static

autoload - take a class name and attempt to load it

Parameters
string$classNameName of class we're looking for.

Definition at line 240 of file AutoLoader.php.

◆ find()

static AutoLoader::find ( $className)
static

Find the file containing the given class.

Parameters
string$classNameName of class we're looking for.
Returns
string|null The path containing the class, not null if not found

Definition at line 167 of file AutoLoader.php.

References $wgAutoloadLocalClasses, and wfDebugLog().

Referenced by FindClasses\execute().

◆ getClassFiles()

static AutoLoader::getClassFiles ( )
static

Returns a map of class names to file paths for testing.

Note
Will throw if called outside of phpunit tests!
Returns
string[]

Definition at line 268 of file AutoLoader.php.

◆ getNamespaceDirectories()

static AutoLoader::getNamespaceDirectories ( )
static

Returns a map of namespace names to directories, per PSR4.

Note
Will throw if called outside of phpunit tests!
Returns
string[]

Definition at line 286 of file AutoLoader.php.

◆ getState()

static AutoLoader::getState ( )
static

Returns an array representing the internal state of Autoloader, so it can be remembered and later restored during testing.

Access: internal
Note
Will throw if called outside of phpunit tests!
Returns
array

Definition at line 298 of file AutoLoader.php.

◆ loadFile()

static AutoLoader::loadFile ( string $file)
static

Load a file that declares classes, functions, or constants.

The file will be loaded immediately using require_once in function scope.

Note
The file to be loaded MUST NOT set global variables or otherwise affect the global state. It MAY however use conditionals to determine what to declare and how, e.g. to provide polyfills.
The file to be loaded MUST NOT assume that MediaWiki has been initialized. In particular, it MUST NOT access configuration variables or MediaWikiServices.
Since
1.39
Parameters
string$filethe path of the file to load.

Definition at line 142 of file AutoLoader.php.

◆ loadFiles()

static AutoLoader::loadFiles ( array $files)
static

Batch version of loadFile()

See also
loadFile()
Since
1.39
Parameters
string[]$filesthe paths of the files to load.

Definition at line 155 of file AutoLoader.php.

Referenced by ExtensionRegistry\exportExtractedData(), and Installer\getAutoExtensionData().

◆ registerClasses()

static AutoLoader::registerClasses ( array $files)
static

Register a file to load the given class from.

Since
1.39
Parameters
string[]$filesa map of qualified class names to file names

Definition at line 122 of file AutoLoader.php.

Referenced by ExtensionRegistry\exportExtractedData(), and Installer\getAutoExtensionData().

◆ registerNamespaces()

static AutoLoader::registerNamespaces ( array $dirs)
static

Register a directory to load the classes of a given namespace from, per PSR4.

See also
https://www.php-fig.org/psr/psr-4/
Since
1.39
Parameters
string[]$dirsa map of namespace (ends with \) to path (ends with /)

Definition at line 112 of file AutoLoader.php.

Referenced by ExtensionRegistry\exportExtractedData(), and Installer\getAutoExtensionData().

◆ resetAutoloadLocalClassesLower()

static AutoLoader::resetAutoloadLocalClassesLower ( )
static

Method to clear the protected class property $autoloadLocalClassesLower.

Used in tests.

Definition at line 252 of file AutoLoader.php.

◆ restoreState()

static AutoLoader::restoreState ( $state)
static

Returns an array representing the internal state of Autoloader, so it can be remembered and later restored during testing.

Access: internal
Note
Will throw if called outside of phpunit tests!
Parameters
array$stateA state array returned by getState().

Definition at line 314 of file AutoLoader.php.

Member Data Documentation

◆ $psr4Namespaces

string [] AutoLoader::$psr4Namespaces = self::CORE_NAMESPACES
static

Namespace (ends with \) => Path (ends with /)

Access: internal
Will become private in 1.40.

Definition at line 97 of file AutoLoader.php.

◆ CORE_NAMESPACES

const AutoLoader::CORE_NAMESPACES

A mapping of namespace => file path for MediaWiki core.

The namespaces should follow the PSR-4 standard for autoloading

See also
https://www.php-fig.org/psr/psr-4/
Access: internal
Only public for usage in AutoloadGenerator @phpcs-require-sorted-array

Definition at line 41 of file AutoLoader.php.


The documentation for this class was generated from the following file: