MediaWiki master
MediaWiki\Registration\ExtensionProcessor Class Reference

Load extension manifests and then aggregate their contents. More...

Inherits MediaWiki\Registration\Processor.

Collaboration diagram for MediaWiki\Registration\ExtensionProcessor:

Public Member Functions

 extractInfo ( $path, array $info, $version)
 
 extractInfoFromFile (string $path)
 Extracts extension info from the given JSON file.
 
 getExtractedAutoloadInfo (bool $includeDev=false)
 Returns the extracted autoload info.
 
 getExtractedInfo (bool $includeDev=false)
 
 getRequirements (array $info, $includeDev)
 Get the requirements for the provided info.
 
- Public Member Functions inherited from MediaWiki\Registration\Processor
 getExtractedInfo ()
 

Protected Member Functions

 extractAttributes ( $path, array $info)
 
 extractConfig1 (array $info)
 Set configuration settings for manifest_version == 1.
 
 extractConfig2 (array $info, $dir)
 Set configuration settings for manifest_version == 2.
 
 extractCredits ( $path, array $info)
 
 extractDomainEventSubscribers (array $info, string $path)
 Extract domain event subscribers.
 
 extractExtensionMessagesFiles ( $dir, array $info)
 
 extractForeignResourcesDir (array $info, string $name, string $dir)
 
 extractHooks (array $info, string $path)
 Extract hook information from Hooks and HookHandler attributes.
 
 extractImplicitRights (array $info)
 Extract any user rights that should be granted implicitly.
 
 extractInstallerTasks (string $path, array $info)
 
 extractMessagesDirs ( $dir, array $info)
 Set message-related settings, which need to be expanded to use absolute paths.
 
 extractNamespaces (array $info)
 Register namespaces with the appropriate global settings.
 
 extractPathBasedGlobal ( $global, $dir, $paths)
 
 extractResourceLoaderModules ( $dir, array $info)
 
 extractRestModuleFiles ( $dir, array $info)
 
 extractSkinImportPaths ( $dir, array $info)
 
 extractSkins ( $dir, array $info)
 Extract skins and handle path correction for templateDirectory.
 
 extractTranslationAliasesDirs ( $dir, array $info)
 Set localization related settings, which need to be expanded to use absolute paths.
 
 storeToArray ( $path, $name, $value, &$array)
 Stores $value to $array; using array_merge() if $array already contains $name.
 
 storeToArrayRecursive ( $path, $name, $value, &$array)
 Stores $value to $array; using array_merge_recursive() if $array already contains $name.
 

Protected Attributes

array $attributes = []
 Anything else in the $info that hasn't already been processed.
 
string[][] $autoload
 Autoloader information.
 
string[][] $autoloadDev
 Autoloader information for development.
 
callable[] $callbacks = []
 Things to be called once the registration of these extensions is done.
 
array $credits = []
 
array $defines = []
 Things that should be define()'d.
 
array $extAttributes = []
 Extension attributes, keyed by name => settings.
 
array $globals
 Stuff that is going to be set to $GLOBALS.
 
const CORE_ATTRIBS
 Top-level attributes that come from MW core.
 
const CREDIT_ATTRIBS
 Keys that are part of the extension credits.
 
const MERGE_STRATEGIES
 Mapping of global settings to their specific merge strategies.
 
const NOT_ATTRIBS
 Things that are not 'attributes', and are not in $globalSettings or CREDIT_ATTRIBS.
 

Static Protected Attributes

static array $globalSettings
 Keys that should be set to $GLOBALS.
 

Detailed Description

Load extension manifests and then aggregate their contents.

Stability: newable
since 1.39

Definition at line 18 of file ExtensionProcessor.php.

Member Function Documentation

◆ extractAttributes()

MediaWiki\Registration\ExtensionProcessor::extractAttributes ( $path,
array $info )
protected
Parameters
string$path
array$info

Definition at line 348 of file ExtensionProcessor.php.

References $path, and MediaWiki\Registration\ExtensionProcessor\storeToArrayRecursive().

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractConfig1()

MediaWiki\Registration\ExtensionProcessor::extractConfig1 ( array $info)
protected

Set configuration settings for manifest_version == 1.

Todo
In the future, this should be done via Config interfaces
Parameters
array$info

Definition at line 857 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractConfig2()

MediaWiki\Registration\ExtensionProcessor::extractConfig2 ( array $info,
$dir )
protected

Set configuration settings for manifest_version == 2.

Todo
In the future, this should be done via Config interfaces
Parameters
array$info
string$dir

Definition at line 899 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractCredits()

MediaWiki\Registration\ExtensionProcessor::extractCredits ( $path,
array $info )
protected
Parameters
string$path
array$info
Returns
string Name of thing
Exceptions
Exception

Definition at line 801 of file ExtensionProcessor.php.

References MediaWiki\Registration\ExtensionProcessor\$credits, and $path.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractDomainEventSubscribers()

MediaWiki\Registration\ExtensionProcessor::extractDomainEventSubscribers ( array $info,
string $path )
protected

Extract domain event subscribers.

Parameters
array$infoattributes and associated values from extension.json
string$pathpath to extension.json

Definition at line 580 of file ExtensionProcessor.php.

References $path.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractExtensionMessagesFiles()

MediaWiki\Registration\ExtensionProcessor::extractExtensionMessagesFiles ( $dir,
array $info )
protected

◆ extractForeignResourcesDir()

MediaWiki\Registration\ExtensionProcessor::extractForeignResourcesDir ( array $info,
string $name,
string $dir )
protected

◆ extractHooks()

MediaWiki\Registration\ExtensionProcessor::extractHooks ( array $info,
string $path )
protected

Extract hook information from Hooks and HookHandler attributes.

Store hook in $wgHooks if a legacy style handler or the 'Hooks' attribute if a non-legacy handler

Parameters
array$infoattributes and associated values from extension.json
string$pathpath to extension.json

Definition at line 545 of file ExtensionProcessor.php.

References $path.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractImplicitRights()

MediaWiki\Registration\ExtensionProcessor::extractImplicitRights ( array $info)
protected

Extract any user rights that should be granted implicitly.

Definition at line 763 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractInfo()

MediaWiki\Registration\ExtensionProcessor::extractInfo ( $path,
array $info,
$version )
Parameters
string$path
array$info
int$versionmanifest_version for info

Implements MediaWiki\Registration\Processor.

Definition at line 260 of file ExtensionProcessor.php.

References $path, MediaWiki\Registration\ExtensionProcessor\extractAttributes(), MediaWiki\Registration\ExtensionProcessor\extractConfig1(), MediaWiki\Registration\ExtensionProcessor\extractConfig2(), MediaWiki\Registration\ExtensionProcessor\extractCredits(), MediaWiki\Registration\ExtensionProcessor\extractDomainEventSubscribers(), MediaWiki\Registration\ExtensionProcessor\extractExtensionMessagesFiles(), MediaWiki\Registration\ExtensionProcessor\extractForeignResourcesDir(), MediaWiki\Registration\ExtensionProcessor\extractHooks(), MediaWiki\Registration\ExtensionProcessor\extractImplicitRights(), MediaWiki\Registration\ExtensionProcessor\extractInstallerTasks(), MediaWiki\Registration\ExtensionProcessor\extractMessagesDirs(), MediaWiki\Registration\ExtensionProcessor\extractNamespaces(), MediaWiki\Registration\ExtensionProcessor\extractPathBasedGlobal(), MediaWiki\Registration\ExtensionProcessor\extractResourceLoaderModules(), MediaWiki\Registration\ExtensionProcessor\extractRestModuleFiles(), MediaWiki\Registration\ExtensionProcessor\extractSkinImportPaths(), MediaWiki\Registration\ExtensionProcessor\extractSkins(), MediaWiki\Registration\ExtensionProcessor\extractTranslationAliasesDirs(), MediaWiki\Registration\ExtensionProcessor\storeToArray(), and MediaWiki\Registration\ExtensionProcessor\storeToArrayRecursive().

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfoFromFile().

◆ extractInfoFromFile()

MediaWiki\Registration\ExtensionProcessor::extractInfoFromFile ( string $path)

Extracts extension info from the given JSON file.

Parameters
string$path
Returns
void

Definition at line 244 of file ExtensionProcessor.php.

References $path, and MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractInstallerTasks()

MediaWiki\Registration\ExtensionProcessor::extractInstallerTasks ( string $path,
array $info )
protected

Definition at line 838 of file ExtensionProcessor.php.

References $path.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractMessagesDirs()

MediaWiki\Registration\ExtensionProcessor::extractMessagesDirs ( $dir,
array $info )
protected

Set message-related settings, which need to be expanded to use absolute paths.

Parameters
string$dir
array$info

Definition at line 717 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractNamespaces()

MediaWiki\Registration\ExtensionProcessor::extractNamespaces ( array $info)
protected

Register namespaces with the appropriate global settings.

Definition at line 591 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractPathBasedGlobal()

MediaWiki\Registration\ExtensionProcessor::extractPathBasedGlobal ( $global,
$dir,
$paths )
protected

Definition at line 951 of file ExtensionProcessor.php.

References $path.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractResourceLoaderModules()

MediaWiki\Registration\ExtensionProcessor::extractResourceLoaderModules ( $dir,
array $info )
protected

◆ extractRestModuleFiles()

MediaWiki\Registration\ExtensionProcessor::extractRestModuleFiles ( $dir,
array $info )
protected

◆ extractSkinImportPaths()

MediaWiki\Registration\ExtensionProcessor::extractSkinImportPaths ( $dir,
array $info )
protected
Parameters
string$dir
array$info

Definition at line 786 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractSkins()

MediaWiki\Registration\ExtensionProcessor::extractSkins ( $dir,
array $info )
protected

Extract skins and handle path correction for templateDirectory.

Parameters
string$dir
array$info

Definition at line 748 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ extractTranslationAliasesDirs()

MediaWiki\Registration\ExtensionProcessor::extractTranslationAliasesDirs ( $dir,
array $info )
protected

Set localization related settings, which need to be expanded to use absolute paths.

Parameters
string$dir
array$info

Definition at line 734 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ getExtractedAutoloadInfo()

MediaWiki\Registration\ExtensionProcessor::getExtractedAutoloadInfo ( bool $includeDev = false)

Returns the extracted autoload info.

The autoload info is returned as an associative array with three keys:

  • files: a list of files to load, for use with Autoloader::loadFile()
  • classes: a map of class names to files, for use with Autoloader::registerClass()
  • namespaces: a map of namespace names to directories, for use with Autoloader::registerNamespace()
Since
1.39
Parameters
bool$includeDev
Returns
array[] The autoload info.

Implements MediaWiki\Registration\Processor.

Definition at line 1012 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ getExtractedInfo()

◆ getRequirements()

MediaWiki\Registration\ExtensionProcessor::getRequirements ( array $info,
$includeDev )

Get the requirements for the provided info.

Since
1.26
Parameters
array$info
bool$includeDev
Returns
array Where keys are the name to have a constraint on, like 'MediaWiki'. Values are a constraint string like "1.26.1".

Implements MediaWiki\Registration\Processor.

Definition at line 394 of file ExtensionProcessor.php.

◆ storeToArray()

MediaWiki\Registration\ExtensionProcessor::storeToArray ( $path,
$name,
$value,
& $array )
protected

Stores $value to $array; using array_merge() if $array already contains $name.

Parameters
string$path
string$name
array$value
array&$array
Exceptions
InvalidArgumentException

Definition at line 987 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractInfo().

◆ storeToArrayRecursive()

MediaWiki\Registration\ExtensionProcessor::storeToArrayRecursive ( $path,
$name,
$value,
& $array )
protected

Stores $value to $array; using array_merge_recursive() if $array already contains $name.

Parameters
string$path
string$name
array$value
array&$array

Definition at line 966 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\extractAttributes(), MediaWiki\Registration\ExtensionProcessor\extractInfo(), and MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

Member Data Documentation

◆ $attributes

array MediaWiki\Registration\ExtensionProcessor::$attributes = []
protected

Anything else in the $info that hasn't already been processed.

Definition at line 227 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ $autoload

string [][] MediaWiki\Registration\ExtensionProcessor::$autoload
protected
Initial value:
= [
'files' => [],
'classes' => [],
'namespaces' => [],
]

Autoloader information.

Each element is an array of strings. 'files' is just a list, 'classes' and 'namespaces' are associative.

Definition at line 203 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ $autoloadDev

string [][] MediaWiki\Registration\ExtensionProcessor::$autoloadDev
protected
Initial value:
= [
'files' => [],
'classes' => [],
'namespaces' => [],
]

Autoloader information for development.

Same structure as $autoload.

Definition at line 215 of file ExtensionProcessor.php.

◆ $callbacks

callable [] MediaWiki\Registration\ExtensionProcessor::$callbacks = []
protected

Things to be called once the registration of these extensions is done.

Keyed by the name of the extension that it belongs to

Definition at line 189 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ $credits

array MediaWiki\Registration\ExtensionProcessor::$credits = []
protected

◆ $defines

array MediaWiki\Registration\ExtensionProcessor::$defines = []
protected

Things that should be define()'d.

Definition at line 180 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ $extAttributes

array MediaWiki\Registration\ExtensionProcessor::$extAttributes = []
protected

Extension attributes, keyed by name => settings.

Definition at line 235 of file ExtensionProcessor.php.

◆ $globals

array MediaWiki\Registration\ExtensionProcessor::$globals
protected
Initial value:
= [
'wgExtensionMessagesFiles' => [],
'wgRestAPIAdditionalRouteFiles' => [],
'wgMessagesDirs' => [],
'TranslationAliasesDirs' => [],
]

Stuff that is going to be set to $GLOBALS.

Some keys are pre-set to arrays, so we can += to them

Definition at line 168 of file ExtensionProcessor.php.

Referenced by MediaWiki\Registration\ExtensionProcessor\getExtractedInfo().

◆ $globalSettings

array MediaWiki\Registration\ExtensionProcessor::$globalSettings
staticprotected

Keys that should be set to $GLOBALS.

Definition at line 25 of file ExtensionProcessor.php.

◆ CORE_ATTRIBS

const MediaWiki\Registration\ExtensionProcessor::CORE_ATTRIBS
protected
Initial value:
= [
'ParsoidModules',
'RestRoutes',
'SkinOOUIThemes',
'SkinCodexThemes',
'SearchMappings',
'TrackingCategories',
'LateJSConfigVarNames',
'TempUserSerialProviders',
'TempUserSerialMappings',
'DatabaseVirtualDomains',
'UserOptionsStoreProviders',
]

Top-level attributes that come from MW core.

Definition at line 82 of file ExtensionProcessor.php.

◆ CREDIT_ATTRIBS

const MediaWiki\Registration\ExtensionProcessor::CREDIT_ATTRIBS
protected
Initial value:
= [
'type',
'author',
'description',
'descriptionmsg',
'license-name',
'name',
'namemsg',
'url',
'version',
]

Keys that are part of the extension credits.

Definition at line 120 of file ExtensionProcessor.php.

◆ MERGE_STRATEGIES

const MediaWiki\Registration\ExtensionProcessor::MERGE_STRATEGIES
protected
Initial value:
= [
'wgAuthManagerAutoConfig' => 'array_plus_2d',
'wgCapitalLinkOverrides' => 'array_plus',
'wgExtraGenderNamespaces' => 'array_plus',
'wgGrantPermissions' => 'array_plus_2d',
'wgGroupPermissions' => 'array_plus_2d',
'wgHooks' => 'array_merge_recursive',
'wgNamespaceContentModels' => 'array_plus',
'wgNamespaceProtection' => 'array_plus',
'wgNamespacesWithSubpages' => 'array_plus',
'wgPasswordPolicy' => 'array_merge_recursive',
'wgRateLimits' => 'array_plus_2d',
'wgRevokePermissions' => 'array_plus_2d',
]

Mapping of global settings to their specific merge strategies.

See also
ExtensionRegistry::exportExtractedData
getExtractedInfo

Definition at line 102 of file ExtensionProcessor.php.

◆ NOT_ATTRIBS

const MediaWiki\Registration\ExtensionProcessor::NOT_ATTRIBS
protected
Initial value:
= [
'callback',
'config',
'config_prefix',
'load_composer_autoloader',
'manifest_version',
'namespaces',
'requires',
'AutoloadClasses',
'AutoloadNamespaces',
'ExtensionMessagesFiles',
'TranslationAliasesDirs',
'ForeignResourcesDir',
'Hooks',
'DomainEventSubscribers',
'MessagePosterModule',
'MessagesDirs',
'OOUIThemePaths',
'QUnitTestModule',
'ResourceFileModulePaths',
'ResourceModuleSkinStyles',
'ResourceModules',
'ServiceWiringFiles',
]

Things that are not 'attributes', and are not in $globalSettings or CREDIT_ATTRIBS.

Definition at line 136 of file ExtensionProcessor.php.


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