MediaWiki REL1_31
|
ResourceLoader module based on local JavaScript/CSS files. More...
Public Member Functions | |
__construct ( $options=[], $localBasePath=null, $remoteBasePath=null) | |
Constructs a new module from an options array. | |
enableModuleContentVersion () | |
Disable module content versioning. | |
getAllStyleFiles () | |
Returns all style files and all skin style files used by this module. | |
getDefinitionSummary (ResourceLoaderContext $context) | |
Get the definition summary for this module. | |
getDependencies (ResourceLoaderContext $context=null) | |
Gets list of names of modules this module depends on. | |
getFlip ( $context) | |
Get whether CSS for this module should be flipped. | |
getGroup () | |
Gets the name of the group this module should be loaded in. | |
getMessages () | |
Gets list of message keys used by this module. | |
getScript (ResourceLoaderContext $context) | |
Gets all scripts for a given context concatenated together. | |
getScriptURLsForDebug (ResourceLoaderContext $context) | |
getSkipFunction () | |
Get the skip function. | |
getStyleFiles (ResourceLoaderContext $context) | |
Get a list of file paths for all styles in this module, in order of proper inclusion. | |
getStyles (ResourceLoaderContext $context) | |
Get all styles for a given context. | |
getStyleSheetLang ( $path) | |
Infer the stylesheet language from a stylesheet file path. | |
getStyleURLsForDebug (ResourceLoaderContext $context) | |
getTargets () | |
Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile']. | |
getTemplates () | |
Takes named templates by the module and returns an array mapping. | |
getType () | |
Get the module's load type. | |
isRaw () | |
readStyleFiles (array $styles, $flip, $context=null) | |
Gets the contents of a list of CSS files. | |
supportsURLLoading () | |
Public Member Functions inherited from ResourceLoaderModule | |
getConfig () | |
getHeaders (ResourceLoaderContext $context) | |
Get headers to send as part of a module web response. | |
getModifiedHash (ResourceLoaderContext $context) | |
Helper method for providing a version hash to getVersionHash(). | |
getModifiedTime (ResourceLoaderContext $context) | |
Get this module's last modification timestamp for a given context. | |
getModuleContent (ResourceLoaderContext $context) | |
Get an array of this module's resources. | |
getName () | |
Get this module's name. | |
getOrigin () | |
Get this module's origin. | |
getSource () | |
Get the origin of this module. | |
getVersionHash (ResourceLoaderContext $context) | |
Get a string identifying the current version of this module in a given context. | |
isKnownEmpty (ResourceLoaderContext $context) | |
Check whether this module is known to be empty. | |
setConfig (Config $config) | |
setFileDependencies (ResourceLoaderContext $context, $files) | |
Set in-object cache for file dependencies. | |
setLogger (LoggerInterface $logger) | |
setMessageBlob ( $blob, $lang) | |
Set in-object cache for message blobs. | |
setName ( $name) | |
Set this module's name. | |
shouldEmbedModule (ResourceLoaderContext $context) | |
Check whether this module should be embeded rather than linked. | |
Static Public Member Functions | |
static | extractBasePaths ( $options=[], $localBasePath=null, $remoteBasePath=null) |
Extract a pair of local and remote base paths from module definition information. | |
Static Public Member Functions inherited from ResourceLoaderModule | |
static | expandRelativePaths (array $filePaths) |
Expand directories relative to $IP. | |
static | getRelativePaths (array $filePaths) |
Make file paths relative to MediaWiki directory. | |
Protected Member Functions | |
compileLessFile ( $fileName, ResourceLoaderContext $context) | |
Compile a LESS file into CSS. | |
getAllSkinStyleFiles () | |
Gets a list of file paths for all skin style files in the module, for all available skins. | |
getFileHashes (ResourceLoaderContext $context) | |
Helper method to gather file hashes for getDefinitionSummary. | |
getLocalPath ( $path) | |
getRemotePath ( $path) | |
getScriptFiles (ResourceLoaderContext $context) | |
Get a list of file paths for all scripts in this module, in order of proper execution. | |
getSkinStyleFiles ( $skinName) | |
Gets a list of file paths for all skin styles in the module used by the skin. | |
readScriptFiles (array $scripts) | |
Gets the contents of a list of JavaScript files. | |
readStyleFile ( $path, $flip, $context) | |
Reads a style file. | |
stripBom ( $input) | |
Takes an input string and removes the UTF-8 BOM character if present. | |
Protected Member Functions inherited from ResourceLoaderModule | |
buildContent (ResourceLoaderContext $context) | |
Bundle all resources attached to this module into an array. | |
getDeprecationInformation () | |
Get JS representing deprecation information for the current module if available. | |
getFileDependencies (ResourceLoaderContext $context) | |
Get the files this module depends on indirectly for a given skin. | |
getLessVars (ResourceLoaderContext $context) | |
Get module-specific LESS variables, if any. | |
getLogger () | |
getMessageBlob (ResourceLoaderContext $context) | |
Get the hash of the message blob. | |
getPreloadLinks (ResourceLoaderContext $context) | |
Get a list of resources that web browsers may preload. | |
saveFileDependencies (ResourceLoaderContext $context, $localFileRefs) | |
Set the files this module depends on indirectly for a given skin. | |
validateScriptFile ( $fileName, $contents) | |
Validate a given script file; if valid returns the original source. | |
Static Protected Member Functions | |
static | collateFilePathListByOption (array $list, $option, $default) |
Collates file paths by option (where provided). | |
static | tryForKey (array $list, $key, $fallback=null) |
Get a list of element that match a key, optionally using a fallback key. | |
Static Protected Member Functions inherited from ResourceLoaderModule | |
static | javaScriptParser () |
static | safeFileHash ( $filePath) |
Compute a non-cryptographic string hash of a file's contents. | |
static | safeFilemtime ( $filePath) |
Safe version of filemtime(), which doesn't throw a PHP warning if the file doesn't exist. | |
Protected Attributes | |
bool | $debugRaw = true |
Link to raw files in debug mode. | |
array | $debugScripts = [] |
List of paths to JavaScript files to include in debug mode. | |
array | $dependencies = [] |
List of modules this module depends on. | |
string | $group |
Name of group to load this module in. | |
bool | $hasGeneratedStyles = false |
Whether getStyleURLsForDebug should return raw file paths, or return load.php urls. | |
array | $languageScripts = [] |
List of JavaScript files to include when using a specific language. | |
string | $localBasePath = '' |
Local base path, see __construct() | |
array | $localFileRefs = [] |
Place where readStyleFile() tracks file dependencies. | |
array | $messages = [] |
List of message keys used by this module. | |
array | $missingLocalFileRefs = [] |
Place where readStyleFile() tracks file dependencies for non-existent files. | |
bool | $noflip = false |
Whether CSSJanus flipping should be skipped for this module. | |
bool | $raw = false |
Whether mw.loader.state() call should be omitted. | |
string | $remoteBasePath = '' |
Remote base path, see __construct() | |
array | $scripts = [] |
List of paths to JavaScript files to always include. | |
array | $skinScripts = [] |
List of JavaScript files to include when using a specific skin. | |
array | $skinStyles = [] |
List of paths to CSS files to include when using specific skins. | |
string | $skipFunction = null |
File name containing the body of the skip function. | |
array | $styles = [] |
List of paths to CSS files to always include. | |
$targets = [ 'desktop' ] | |
array | $templates = [] |
Saves a list of the templates named by the modules. | |
Protected Attributes inherited from ResourceLoaderModule | |
Config | $config |
$contents = [] | |
array bool | $deprecated = false |
$fileDeps = [] | |
LoggerInterface | $logger |
$msgBlobs = [] | |
$name = null | |
$origin = self::ORIGIN_CORE_SITEWIDE | |
$targets = [ 'desktop' ] | |
$versionHash = [] | |
Private Member Functions | |
getLanguageScripts ( $lang) | |
Get the set of language scripts for the given language, possibly using a fallback language. | |
Additional Inherited Members | |
Public Attributes inherited from ResourceLoaderModule | |
const | LOAD_GENERAL = 'general' |
const | LOAD_STYLES = 'styles' |
const | ORIGIN_ALL = 10 |
const | ORIGIN_CORE_INDIVIDUAL = 2 |
const | ORIGIN_CORE_SITEWIDE = 1 |
const | ORIGIN_USER_INDIVIDUAL = 4 |
const | ORIGIN_USER_SITEWIDE = 3 |
const | TYPE_COMBINED = 'combined' |
const | TYPE_SCRIPTS = 'scripts' |
const | TYPE_STYLES = 'styles' |
ResourceLoader module based on local JavaScript/CSS files.
Definition at line 28 of file ResourceLoaderFileModule.php.
ResourceLoaderFileModule::__construct | ( | $options = [] , |
|
$localBasePath = null , |
|||
$remoteBasePath = null |
|||
) |
Constructs a new module from an options array.
array | $options | List of options; if not given or empty, an empty module will be constructed |
string | $localBasePath | Base path to prepend to all local paths in $options. Defaults to $IP |
string | $remoteBasePath | Base path to prepend to all remote paths in $options. Defaults to $wgResourceBasePath |
Below is a description for the $options array:
InvalidArgumentException |
Definition at line 208 of file ResourceLoaderFileModule.php.
References $localBasePath, $options, $remoteBasePath, $value, array(), as, extractBasePaths(), list, and string.
|
staticprotected |
Collates file paths by option (where provided).
array | $list | List of file paths in any combination of index/path or path/options pairs |
string | $option | Option name |
mixed | $default | Default value if the option isn't set |
Definition at line 633 of file ResourceLoaderFileModule.php.
References $value, array(), and as.
Referenced by getFileHashes(), and getSkinStyleFiles().
|
protected |
Compile a LESS file into CSS.
Keeps track of all used files and adds them to localFileRefs.
Exception | If less.php encounters a parse error |
string | $fileName | File path of LESS source |
ResourceLoaderContext | $context | Context in which to generate script |
Definition at line 955 of file ResourceLoaderFileModule.php.
References $cache, $context, $css, $vars, CACHE_ANYTHING, FileContentsHasher\getFileContentsHash(), ResourceLoaderModule\getLessVars(), and serialize().
Referenced by readStyleFile().
ResourceLoaderFileModule::enableModuleContentVersion | ( | ) |
Disable module content versioning.
This class uses getDefinitionSummary() instead, to avoid filesystem overhead involved with building the full module content inside a startup request.
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderJqueryMsgModule, and ResourceLoaderMediaWikiUtilModule.
Definition at line 484 of file ResourceLoaderFileModule.php.
|
static |
Extract a pair of local and remote base paths from module definition information.
Implementation note: the amount of global state used in this function is staggering.
array | $options | Module definition |
string | $localBasePath | Path to use if not provided in module definition. Defaults to $IP |
string | $remoteBasePath | Path to use if not provided in module definition. Defaults to $wgResourceBasePath |
Definition at line 307 of file ResourceLoaderFileModule.php.
References $IP, $localBasePath, $options, $remoteBasePath, $wgExtensionAssetsPath, $wgResourceBasePath, $wgStylePath, global, and string.
Referenced by __construct(), and ResourceLoader\register().
|
protected |
Gets a list of file paths for all skin style files in the module, for all available skins.
Definition at line 755 of file ResourceLoaderFileModule.php.
References as, and getSkinStyleFiles().
Referenced by getAllStyleFiles().
ResourceLoaderFileModule::getAllStyleFiles | ( | ) |
Returns all style files and all skin style files used by this module.
Definition at line 775 of file ResourceLoaderFileModule.php.
References as, getAllSkinStyleFiles(), and getLocalPath().
ResourceLoaderFileModule::getDefinitionSummary | ( | ResourceLoaderContext | $context | ) |
Get the definition summary for this module.
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderSkinModule.
Definition at line 548 of file ResourceLoaderFileModule.php.
References $context, $options, as, getFileHashes(), ResourceLoaderModule\getLessVars(), and ResourceLoaderModule\getMessageBlob().
ResourceLoaderFileModule::getDependencies | ( | ResourceLoaderContext | $context = null | ) |
Gets list of names of modules this module depends on.
ResourceLoaderContext | null | $context |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderForeignApiModule.
Definition at line 444 of file ResourceLoaderFileModule.php.
References $dependencies.
|
protected |
Helper method to gather file hashes for getDefinitionSummary.
This function is context-sensitive, only computing hashes of files relevant to the given language, skin, etc.
ResourceLoaderContext | $context |
Definition at line 498 of file ResourceLoaderFileModule.php.
References $context, $skipFunction, $styles, as, collateFilePathListByOption(), ResourceLoaderModule\getFileDependencies(), ResourceLoaderContext\getLanguage(), getLanguageScripts(), scripts, and tryForKey().
Referenced by getDefinitionSummary().
ResourceLoaderFileModule::getFlip | ( | $context | ) |
Get whether CSS for this module should be flipped.
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Definition at line 908 of file ResourceLoaderFileModule.php.
References $context, and $noflip.
Referenced by getStyles().
ResourceLoaderFileModule::getGroup | ( | ) |
Gets the name of the group this module should be loaded in.
Reimplemented from ResourceLoaderModule.
Definition at line 435 of file ResourceLoaderFileModule.php.
References $group.
|
private |
Get the set of language scripts for the given language, possibly using a fallback language.
string | $lang |
Definition at line 701 of file ResourceLoaderFileModule.php.
References $lang, $scripts, as, and tryForKey().
Referenced by getFileHashes(), and getScriptFiles().
|
protected |
string | ResourceLoaderFilePath | $path |
Definition at line 593 of file ResourceLoaderFileModule.php.
References $path.
Referenced by getAllStyleFiles(), getSkipFunction(), getTemplates(), readScriptFiles(), and readStyleFile().
ResourceLoaderFileModule::getMessages | ( | ) |
Gets list of message keys used by this module.
Reimplemented from ResourceLoaderModule.
Definition at line 426 of file ResourceLoaderFileModule.php.
References $messages.
|
protected |
string | ResourceLoaderFilePath | $path |
Definition at line 605 of file ResourceLoaderFileModule.php.
References $path.
Referenced by getScriptURLsForDebug(), getStyleURLsForDebug(), and readStyleFile().
ResourceLoaderFileModule::getScript | ( | ResourceLoaderContext | $context | ) |
Gets all scripts for a given context concatenated together.
ResourceLoaderContext | $context | Context in which to generate script |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderJqueryMsgModule, ResourceLoaderMediaWikiUtilModule, and ResourceLoaderRawFileModule.
Definition at line 351 of file ResourceLoaderFileModule.php.
References ResourceLoaderModule\getDeprecationInformation(), getScriptFiles(), and readScriptFiles().
|
protected |
Get a list of file paths for all scripts in this module, in order of proper execution.
ResourceLoaderContext | $context |
Definition at line 681 of file ResourceLoaderFileModule.php.
References $context, ResourceLoaderContext\getLanguage(), getLanguageScripts(), and scripts.
Referenced by getScript(), and getScriptURLsForDebug().
ResourceLoaderFileModule::getScriptURLsForDebug | ( | ResourceLoaderContext | $context | ) |
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderJqueryMsgModule.
Definition at line 360 of file ResourceLoaderFileModule.php.
References $urls, as, ResourceLoaderModule\getConfig(), getRemotePath(), and getScriptFiles().
|
protected |
Gets a list of file paths for all skin styles in the module used by the skin.
string | $skinName | The name of the skin |
Definition at line 741 of file ResourceLoaderFileModule.php.
References collateFilePathListByOption().
Referenced by getAllSkinStyleFiles().
ResourceLoaderFileModule::getSkipFunction | ( | ) |
Get the skip function.
MWException |
Reimplemented from ResourceLoaderModule.
Definition at line 453 of file ResourceLoaderFileModule.php.
References ResourceLoaderModule\$contents, ResourceLoaderModule\getConfig(), getLocalPath(), stripBom(), and ResourceLoaderModule\validateScriptFile().
ResourceLoaderFileModule::getStyleFiles | ( | ResourceLoaderContext | $context | ) |
Get a list of file paths for all styles in this module, in order of proper inclusion.
ResourceLoaderContext | $context |
Definition at line 723 of file ResourceLoaderFileModule.php.
References $context.
Referenced by getStyles(), and getStyleURLsForDebug().
ResourceLoaderFileModule::getStyles | ( | ResourceLoaderContext | $context | ) |
Get all styles for a given context.
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderSkinModule.
Definition at line 384 of file ResourceLoaderFileModule.php.
References $context, $styles, getFlip(), getStyleFiles(), readStyleFiles(), and ResourceLoaderModule\saveFileDependencies().
ResourceLoaderFileModule::getStyleSheetLang | ( | $path | ) |
Infer the stylesheet language from a stylesheet file path.
string | $path |
Definition at line 620 of file ResourceLoaderFileModule.php.
References $path.
Referenced by readStyleFile().
ResourceLoaderFileModule::getStyleURLsForDebug | ( | ResourceLoaderContext | $context | ) |
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Definition at line 400 of file ResourceLoaderFileModule.php.
References $context, $urls, as, ResourceLoaderModule\getConfig(), getRemotePath(), and getStyleFiles().
ResourceLoaderFileModule::getTargets | ( | ) |
Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'].
Reimplemented from ResourceLoaderModule.
Definition at line 917 of file ResourceLoaderFileModule.php.
References $targets.
ResourceLoaderFileModule::getTemplates | ( | ) |
Takes named templates by the module and returns an array mapping.
MWException |
Reimplemented from ResourceLoaderModule.
Definition at line 1001 of file ResourceLoaderFileModule.php.
References $templates, as, getLocalPath(), stripBom(), and wfDebugLog().
ResourceLoaderFileModule::getType | ( | ) |
Get the module's load type.
Reimplemented from ResourceLoaderModule.
Definition at line 927 of file ResourceLoaderFileModule.php.
References $raw, ResourceLoaderModule\LOAD_GENERAL, ResourceLoaderModule\LOAD_STYLES, messages, and scripts.
ResourceLoaderFileModule::isRaw | ( | ) |
Reimplemented from ResourceLoaderModule.
Definition at line 472 of file ResourceLoaderFileModule.php.
References $raw.
|
protected |
Gets the contents of a list of JavaScript files.
array | $scripts | List of file paths to scripts to read, remap and concetenate |
MWException |
Definition at line 799 of file ResourceLoaderFileModule.php.
References ResourceLoaderModule\$contents, $scripts, as, ResourceLoaderModule\getConfig(), getLocalPath(), stripBom(), and ResourceLoaderModule\validateScriptFile().
Referenced by getScript().
|
protected |
Reads a style file.
This method can be used as a callback for array_map()
string | $path | File path of style file to read |
bool | $flip | |
ResourceLoaderContext | $context |
MWException | If the file doesn't exist |
Definition at line 868 of file ResourceLoaderFileModule.php.
References $context, $localFileRefs, $path, as, compileLessFile(), CSSMin\getLocalFileReferences(), getLocalPath(), getRemotePath(), getStyleSheetLang(), CSSMin\remap(), stripBom(), and wfDebugLog().
Referenced by readStyleFiles().
ResourceLoaderFileModule::readStyleFiles | ( | array | $styles, |
$flip, | |||
$context = null |
|||
) |
Gets the contents of a list of CSS files.
array | $styles | List of media type/list of file paths pairs, to read, remap and concetenate |
bool | $flip | |
ResourceLoaderContext | $context |
MWException |
Definition at line 836 of file ResourceLoaderFileModule.php.
References $context, $styles, as, ResourceLoaderContext\newDummyContext(), readStyleFile(), and wfDeprecated().
Referenced by getStyles().
|
protected |
Takes an input string and removes the UTF-8 BOM character if present.
We need to remove these after reading a file, because we concatenate our files and the BOM character is not valid in the middle of a string. We already assume UTF-8 everywhere, so this should be safe.
string | $input |
Definition at line 1032 of file ResourceLoaderFileModule.php.
References $input.
Referenced by getSkipFunction(), getTemplates(), readScriptFiles(), and readStyleFile().
ResourceLoaderFileModule::supportsURLLoading | ( | ) |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderMediaWikiUtilModule.
Definition at line 374 of file ResourceLoaderFileModule.php.
References $debugRaw.
|
staticprotected |
Get a list of element that match a key, optionally using a fallback key.
array | $list | List of lists to select from |
string | $key | Key to look for in $map |
string | $fallback | Key to look for in $list if $key doesn't exist |
Definition at line 663 of file ResourceLoaderFileModule.php.
References $fallback.
Referenced by getFileHashes(), and getLanguageScripts().
|
protected |
Link to raw files in debug mode.
Definition at line 120 of file ResourceLoaderFileModule.php.
Referenced by supportsURLLoading().
|
protected |
|
protected |
List of modules this module depends on.
Definition at line 100 of file ResourceLoaderFileModule.php.
Referenced by getDependencies(), and ResourceLoaderForeignApiModule\getDependencies().
|
protected |
Name of group to load this module in.
Definition at line 117 of file ResourceLoaderFileModule.php.
Referenced by getGroup().
|
protected |
Whether getStyleURLsForDebug should return raw file paths, or return load.php urls.
Definition at line 134 of file ResourceLoaderFileModule.php.
|
protected |
List of JavaScript files to include when using a specific language.
Definition at line 55 of file ResourceLoaderFileModule.php.
|
protected |
Local base path, see __construct()
Definition at line 31 of file ResourceLoaderFileModule.php.
Referenced by __construct(), and extractBasePaths().
|
protected |
Place where readStyleFile() tracks file dependencies.
Definition at line 143 of file ResourceLoaderFileModule.php.
Referenced by readStyleFile().
|
protected |
List of message keys used by this module.
Definition at line 114 of file ResourceLoaderFileModule.php.
Referenced by getMessages().
|
protected |
Place where readStyleFile() tracks file dependencies for non-existent files.
Used in tests to detect missing dependencies.
Definition at line 149 of file ResourceLoaderFileModule.php.
|
protected |
Whether CSSJanus flipping should be skipped for this module.
Definition at line 128 of file ResourceLoaderFileModule.php.
Referenced by getFlip().
|
protected |
Whether mw.loader.state() call should be omitted.
Definition at line 123 of file ResourceLoaderFileModule.php.
|
protected |
Remote base path, see __construct()
Definition at line 34 of file ResourceLoaderFileModule.php.
Referenced by __construct(), and extractBasePaths().
|
protected |
List of paths to JavaScript files to always include.
Definition at line 46 of file ResourceLoaderFileModule.php.
Referenced by getLanguageScripts(), and readScriptFiles().
|
protected |
List of JavaScript files to include when using a specific skin.
Definition at line 64 of file ResourceLoaderFileModule.php.
Referenced by ResourceLoaderOOUIFileModule\__construct().
|
protected |
List of paths to CSS files to include when using specific skins.
Definition at line 91 of file ResourceLoaderFileModule.php.
Referenced by ResourceLoaderOOUIFileModule\__construct().
|
protected |
File name containing the body of the skip function.
Definition at line 105 of file ResourceLoaderFileModule.php.
Referenced by getFileHashes().
|
protected |
List of paths to CSS files to always include.
Definition at line 82 of file ResourceLoaderFileModule.php.
Referenced by getFileHashes(), getStyles(), ResourceLoaderSkinModule\getStyles(), ResourceLoaderSkinModule\normalizeStyles(), and readStyleFiles().
|
protected |
Definition at line 125 of file ResourceLoaderFileModule.php.
Referenced by getTargets().
|
protected |
Saves a list of the templates named by the modules.
Definition at line 37 of file ResourceLoaderFileModule.php.
Referenced by getTemplates().