MediaWiki  master
ExtensionProcessor Class Reference
Inheritance diagram for ExtensionProcessor:
Collaboration diagram for ExtensionProcessor:

Public Member Functions

 extractInfo ( $path, array $info, $version)
 
 getExtraAutoloaderPaths ( $dir, array $info)
 Get the path for additional autoloaders, e.g. More...
 
 getExtractedInfo ()
 
 getRequirements (array $info, $includeDev)
 Get the requirements for the provided info. More...
 

Protected Member Functions

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

Protected Attributes

array $attributes = []
 Any thing else in the $info that hasn't already been processed. More...
 
callable[] $callbacks = []
 Things to be called once registration of these extensions are done keyed by the name of the extension that it belongs to. More...
 
array $credits = []
 
array $defines = []
 Things that should be define()'d. More...
 
array $extAttributes = []
 Extension attributes, keyed by name => settings. More...
 
array $globals
 Stuff that is going to be set to $GLOBALS. More...
 

Static Protected Attributes

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

Private Member Functions

 addConfigGlobal ( $key, $value, $extName)
 Helper function to set a value to a specific global, if it isn't set already. More...
 
 setArrayHookHandler (array $callback, array $hookHandlersAttr, string $name, string $path)
 When handler value is an array, set $wgHooks or Hooks attribute Could be legacy hook e.g. More...
 
 setStringHookHandler (string $callback, array $hookHandlersAttr, string $name, string $path)
 When handler value is a string, set $wgHooks or Hooks attribute. More...
 

Detailed Description

Definition at line 3 of file ExtensionProcessor.php.

Member Function Documentation

◆ addConfigGlobal()

ExtensionProcessor::addConfigGlobal (   $key,
  $value,
  $extName 
)
private

Helper function to set a value to a specific global, if it isn't set already.

Parameters
string$keyThe config key with the prefix and anything
mixed$valueThe value of the config
string$extNameName of the extension

Definition at line 764 of file ExtensionProcessor.php.

Referenced by extractConfig1(), and extractConfig2().

◆ extractAttributes()

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

Definition at line 272 of file ExtensionProcessor.php.

References $path, and storeToArrayRecursive().

Referenced by extractInfo().

◆ extractConfig1()

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 703 of file ExtensionProcessor.php.

References addConfigGlobal().

Referenced by extractInfo().

◆ extractConfig2()

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 726 of file ExtensionProcessor.php.

References addConfigGlobal(), and ExtensionRegistry\MERGE_STRATEGY.

Referenced by extractInfo().

◆ extractCredits()

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

Definition at line 671 of file ExtensionProcessor.php.

References $credits, and $path.

Referenced by extractInfo().

◆ extractExtensionMessagesFiles()

ExtensionProcessor::extractExtensionMessagesFiles (   $dir,
array  $info 
)
protected

Definition at line 595 of file ExtensionProcessor.php.

References $file.

Referenced by extractInfo().

◆ extractHooks()

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 462 of file ExtensionProcessor.php.

References $path, setArrayHookHandler(), and setStringHookHandler().

Referenced by extractInfo().

◆ extractInfo()

ExtensionProcessor::extractInfo (   $path,
array  $info,
  $version 
)

◆ extractMessagesDirs()

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 611 of file ExtensionProcessor.php.

References $file.

Referenced by extractInfo().

◆ extractNamespaces()

ExtensionProcessor::extractNamespaces ( array  $info)
protected

Register namespaces with the appropriate global settings.

Parameters
array$info

Definition at line 496 of file ExtensionProcessor.php.

Referenced by extractInfo().

◆ extractPathBasedGlobal()

ExtensionProcessor::extractPathBasedGlobal (   $global,
  $dir,
  $paths 
)
protected

Definition at line 773 of file ExtensionProcessor.php.

References $path.

Referenced by extractInfo().

◆ extractResourceLoaderModules()

ExtensionProcessor::extractResourceLoaderModules (   $dir,
array  $info 
)
protected

Definition at line 538 of file ExtensionProcessor.php.

Referenced by extractInfo().

◆ extractSkinImportPaths()

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

Definition at line 657 of file ExtensionProcessor.php.

Referenced by extractInfo().

◆ extractSkins()

ExtensionProcessor::extractSkins (   $dir,
array  $info 
)
protected

Extract skins and handle path correction for templateDirectory.

Parameters
string$dir
array$info

Definition at line 627 of file ExtensionProcessor.php.

Referenced by extractInfo().

◆ getExtraAutoloaderPaths()

ExtensionProcessor::getExtraAutoloaderPaths (   $dir,
array  $info 
)

Get the path for additional autoloaders, e.g.

the one of Composer.

Parameters
string$dir
array$info
Returns
array Containing the paths for autoloader file(s).
Since
1.27

Implements Processor.

Definition at line 819 of file ExtensionProcessor.php.

◆ getExtractedInfo()

ExtensionProcessor::getExtractedInfo ( )
Returns
array With following keys: 'globals' - variables to be set to $GLOBALS 'defines' - constants to define 'callbacks' - functions to be executed by the registry 'credits' - metadata to be stored by registry 'attributes' - registration info which isn't a global variable

Implements Processor.

Definition at line 280 of file ExtensionProcessor.php.

References $attributes, $callbacks, $credits, $defines, $globals, ExtensionRegistry\MERGE_STRATEGY, and storeToArrayRecursive().

◆ getRequirements()

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 Processor.

Definition at line 313 of file ExtensionProcessor.php.

◆ setArrayHookHandler()

ExtensionProcessor::setArrayHookHandler ( array  $callback,
array  $hookHandlersAttr,
string  $name,
string  $path 
)
private

When handler value is an array, set $wgHooks or Hooks attribute Could be legacy hook e.g.

'GlobalFunctionName' or non-legacy hook referencing a handler definition from 'HookHandler' attribute

Parameters
array$callbackHandler
array$hookHandlersAttrhandler definitions from 'HookHandler' attribute
string$name
string$pathextension.json file path
Exceptions
UnexpectedValueException

Definition at line 395 of file ExtensionProcessor.php.

References $path, and setStringHookHandler().

Referenced by extractHooks().

◆ setStringHookHandler()

ExtensionProcessor::setStringHookHandler ( string  $callback,
array  $hookHandlersAttr,
string  $name,
string  $path 
)
private

When handler value is a string, set $wgHooks or Hooks attribute.

Could be legacy hook e.g. 'GlobalFunctionName' or non-legacy hook referencing a handler definition from 'HookHandler' attribute

Parameters
string$callbackHandler
array$hookHandlersAttrhandler definitions from 'HookHandler' attribute
string$name
string$path

Definition at line 437 of file ExtensionProcessor.php.

References $path.

Referenced by extractHooks(), and setArrayHookHandler().

◆ storeToArray()

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 808 of file ExtensionProcessor.php.

Referenced by extractInfo().

◆ storeToArrayRecursive()

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
Exceptions
InvalidArgumentException

Definition at line 788 of file ExtensionProcessor.php.

Referenced by extractAttributes(), extractInfo(), and getExtractedInfo().

Member Data Documentation

◆ $attributes

array ExtensionProcessor::$attributes = []
protected

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

Definition at line 177 of file ExtensionProcessor.php.

Referenced by getExtractedInfo().

◆ $callbacks

callable [] ExtensionProcessor::$callbacks = []
protected

Things to be called once registration of these extensions are done keyed by the name of the extension that it belongs to.

Definition at line 164 of file ExtensionProcessor.php.

Referenced by getExtractedInfo().

◆ $credits

array ExtensionProcessor::$credits = []
protected

Definition at line 169 of file ExtensionProcessor.php.

Referenced by extractCredits(), and getExtractedInfo().

◆ $defines

array ExtensionProcessor::$defines = []
protected

Things that should be define()'d.

Definition at line 156 of file ExtensionProcessor.php.

Referenced by getExtractedInfo().

◆ $extAttributes

array ExtensionProcessor::$extAttributes = []
protected

Extension attributes, keyed by name => settings.

Definition at line 185 of file ExtensionProcessor.php.

◆ $globals

array ExtensionProcessor::$globals
protected
Initial value:
= [
'wgExtensionMessagesFiles' => [],
'wgMessagesDirs' => [],
]

Stuff that is going to be set to $GLOBALS.

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

Definition at line 146 of file ExtensionProcessor.php.

Referenced by getExtractedInfo().

◆ $globalSettings

array ExtensionProcessor::$globalSettings
staticprotected

Keys that should be set to $GLOBALS.

Definition at line 10 of file ExtensionProcessor.php.


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