MediaWiki REL1_32
|
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) | |
Get the contents of a list of CSS files. | |
supportsURLLoading () | |
Public Member Functions inherited from ResourceLoaderModule | |
getConfig () | |
getDeprecationInformation () | |
Get JS representing deprecation information for the current module if available. | |
getHeaders (ResourceLoaderContext $context) | |
Get headers to send as part of a module web response. | |
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 source 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. | |
getLocalPath ( $path) | |
getRemotePath ( $path) | |
getSkinStyleFiles ( $skinName) | |
Gets a list of file paths for all skin styles in the module used by the skin. | |
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. | |
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 | |
getFileHashes (ResourceLoaderContext $context) | |
Helper method for getDefinitionSummary. | |
getLanguageScripts ( $lang) | |
Get the set of language scripts for the given language, possibly using a fallback language. | |
getScriptFiles (ResourceLoaderContext $context) | |
Get a list of script file paths for this module, in order of proper execution. | |
readScriptFiles (array $scripts) | |
Get the contents of a list of JavaScript files. | |
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 | null | $localBasePath | Base path to prepend to all local paths in $options. Defaults to $IP |
string | null | $remoteBasePath | Base path to prepend to all remote paths in $options. Defaults to $wgResourceBasePath |
Below is a description for the $options array:
InvalidArgumentException |
Reimplemented in CiteCSSFileModule, and ResourceLoaderLessVarFileModule.
Definition at line 208 of file ResourceLoaderFileModule.php.
|
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 627 of file ResourceLoaderFileModule.php.
|
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 946 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 ResourceLoaderSyntaxHighlightVisualEditorModule, ResourceLoaderJqueryMsgModule, ResourceLoaderLanguageDataModule, ResourceLoaderLanguageNamesModule, and ResourceLoaderMediaWikiUtilModule.
Definition at line 481 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 | null | $localBasePath | Path to use if not provided in module definition. Defaults to $IP |
string | null | $remoteBasePath | Path to use if not provided in module definition. Defaults to $wgResourceBasePath |
Definition at line 307 of file ResourceLoaderFileModule.php.
References $IP, $options, $wgExtensionAssetsPath, $wgResourceBasePath, $wgStylePath, and string.
|
protected |
Gets a list of file paths for all skin style files in the module, for all available skins.
Definition at line 752 of file ResourceLoaderFileModule.php.
References getSkinStyleFiles().
Referenced by getAllStyleFiles().
ResourceLoaderFileModule::getAllStyleFiles | ( | ) |
Returns all style files and all skin style files used by this module.
Definition at line 772 of file ResourceLoaderFileModule.php.
References $result, 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 542 of file ResourceLoaderFileModule.php.
References $context, $options, 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, and ResourceLoaderLanguageNamesModule.
Definition at line 444 of file ResourceLoaderFileModule.php.
|
private |
Helper method for getDefinitionSummary.
ResourceLoaderContext | $context |
Definition at line 492 of file ResourceLoaderFileModule.php.
References $context, ResourceLoaderModule\getFileDependencies(), getLanguageScripts(), and scripts.
Referenced by getDefinitionSummary().
ResourceLoaderFileModule::getFlip | ( | $context | ) |
Get whether CSS for this module should be flipped.
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Definition at line 899 of file ResourceLoaderFileModule.php.
References $context.
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.
|
private |
Get the set of language scripts for the given language, possibly using a fallback language.
string | $lang |
Definition at line 695 of file ResourceLoaderFileModule.php.
References $lang.
Referenced by getFileHashes(), and getScriptFiles().
|
protected |
string | ResourceLoaderFilePath | $path |
Definition at line 587 of file ResourceLoaderFileModule.php.
Referenced by CiteCSSFileModule\__construct(), getAllStyleFiles(), getSkipFunction(), getTemplates(), readScriptFiles(), and readStyleFile().
ResourceLoaderFileModule::getMessages | ( | ) |
Gets list of message keys used by this module.
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderLessVarFileModule.
Definition at line 426 of file ResourceLoaderFileModule.php.
References $messages.
|
protected |
string | ResourceLoaderFilePath | $path |
Definition at line 599 of file ResourceLoaderFileModule.php.
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 ResourceLoaderSyntaxHighlightVisualEditorModule, ResourceLoaderJqueryMsgModule, ResourceLoaderLanguageDataModule, ResourceLoaderLanguageNamesModule, and ResourceLoaderMediaWikiUtilModule.
Definition at line 351 of file ResourceLoaderFileModule.php.
References $context, ResourceLoaderModule\getDeprecationInformation(), getScriptFiles(), and readScriptFiles().
|
private |
Get a list of script file paths for this module, in order of proper execution.
ResourceLoaderContext | $context |
Definition at line 675 of file ResourceLoaderFileModule.php.
References $context, getLanguageScripts(), and scripts.
Referenced by getScript(), and getScriptURLsForDebug().
ResourceLoaderFileModule::getScriptURLsForDebug | ( | ResourceLoaderContext | $context | ) |
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderSyntaxHighlightVisualEditorModule, and ResourceLoaderJqueryMsgModule.
Definition at line 360 of file ResourceLoaderFileModule.php.
References $context, $urls, 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 738 of file ResourceLoaderFileModule.php.
Referenced by getAllSkinStyleFiles().
ResourceLoaderFileModule::getSkipFunction | ( | ) |
Get the skip function.
MWException |
Reimplemented from ResourceLoaderModule.
Definition at line 453 of file ResourceLoaderFileModule.php.
References ResourceLoaderModule\$contents, getLocalPath(), and stripBom().
ResourceLoaderFileModule::getStyleFiles | ( | ResourceLoaderContext | $context | ) |
Get a list of file paths for all styles in this module, in order of proper inclusion.
This is considered a private method. Exposed for internal use by WebInstallerOutput.
ResourceLoaderContext | $context |
Definition at line 720 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, getFlip(), getStyleFiles(), readStyleFiles(), and ResourceLoaderModule\saveFileDependencies().
ResourceLoaderFileModule::getStyleSheetLang | ( | $path | ) |
Infer the stylesheet language from a stylesheet file path.
string | $path |
Definition at line 614 of file ResourceLoaderFileModule.php.
Referenced by readStyleFile().
ResourceLoaderFileModule::getStyleURLsForDebug | ( | ResourceLoaderContext | $context | ) |
ResourceLoaderContext | $context |
Reimplemented from ResourceLoaderModule.
Definition at line 400 of file ResourceLoaderFileModule.php.
References $context, $urls, ResourceLoaderModule\getConfig(), getRemotePath(), and getStyleFiles().
ResourceLoaderFileModule::getTargets | ( | ) |
Get target(s) for the module, eg ['desktop'] or ['desktop', 'mobile'].
Reimplemented from ResourceLoaderModule.
Definition at line 908 of file ResourceLoaderFileModule.php.
ResourceLoaderFileModule::getTemplates | ( | ) |
Takes named templates by the module and returns an array mapping.
MWException |
Reimplemented from ResourceLoaderModule.
Definition at line 992 of file ResourceLoaderFileModule.php.
References $content, getLocalPath(), stripBom(), and wfDebugLog().
ResourceLoaderFileModule::getType | ( | ) |
Get the module's load type.
Reimplemented from ResourceLoaderModule.
Definition at line 918 of file ResourceLoaderFileModule.php.
References scripts.
ResourceLoaderFileModule::isRaw | ( | ) |
Reimplemented from ResourceLoaderModule.
Definition at line 469 of file ResourceLoaderFileModule.php.
|
private |
Get the contents of a list of JavaScript files.
Helper for getScript().
array | $scripts | List of file paths to scripts to read, remap and concetenate |
MWException |
Definition at line 796 of file ResourceLoaderFileModule.php.
References ResourceLoaderModule\$contents, getLocalPath(), and stripBom().
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 859 of file ResourceLoaderFileModule.php.
References $context, compileLessFile(), getLocalPath(), getRemotePath(), getStyleSheetLang(), stripBom(), and wfDebugLog().
Referenced by readStyleFiles().
ResourceLoaderFileModule::readStyleFiles | ( | array | $styles, |
$flip, | |||
$context = null ) |
Get the contents of a list of CSS files.
This is considered a private method. Exposed for internal use by WebInstallerOutput.
array | $styles | Map of media type to file paths to read, remap, and concatenate |
bool | $flip | |
ResourceLoaderContext | null | $context |
MWException |
Definition at line 827 of file ResourceLoaderFileModule.php.
References $context, 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 1023 of file ResourceLoaderFileModule.php.
References $input.
Referenced by getSkipFunction(), getTemplates(), readScriptFiles(), and readStyleFile().
ResourceLoaderFileModule::supportsURLLoading | ( | ) |
Reimplemented from ResourceLoaderModule.
Reimplemented in ResourceLoaderLanguageDataModule, and ResourceLoaderMediaWikiUtilModule.
Definition at line 374 of file ResourceLoaderFileModule.php.
|
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 | null | $fallback | Key to look for in $list if $key doesn't exist |
Definition at line 657 of file ResourceLoaderFileModule.php.
References $fallback.
|
protected |
Link to raw files in debug mode.
Definition at line 120 of file ResourceLoaderFileModule.php.
|
protected |
List of paths to JavaScript files to include in debug mode.
Definition at line 73 of file ResourceLoaderFileModule.php.
|
protected |
List of modules this module depends on.
Definition at line 100 of file ResourceLoaderFileModule.php.
Referenced by ResourceLoaderForeignApiModule\getDependencies().
|
protected |
Name of group to load this module in.
Definition at line 117 of file ResourceLoaderFileModule.php.
|
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 CiteCSSFileModule\__construct(), and ResourceLoaderLessVarFileModule\__construct().
|
protected |
Place where readStyleFile() tracks file dependencies.
Definition at line 143 of file ResourceLoaderFileModule.php.
|
protected |
List of message keys used by this module.
Definition at line 114 of file ResourceLoaderFileModule.php.
|
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.
|
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 CiteCSSFileModule\__construct(), and ResourceLoaderLessVarFileModule\__construct().
|
protected |
List of paths to JavaScript files to always include.
Definition at line 46 of file ResourceLoaderFileModule.php.
Referenced by ResourceLoaderSyntaxHighlightVisualEditorModule\getScript().
|
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.
|
protected |
List of paths to CSS files to always include.
Definition at line 82 of file ResourceLoaderFileModule.php.
Referenced by ResourceLoaderSkinModule\getStyles(), and ResourceLoaderSkinModule\normalizeStyles().
|
protected |
Definition at line 125 of file ResourceLoaderFileModule.php.
|
protected |
Saves a list of the templates named by the modules.
Definition at line 37 of file ResourceLoaderFileModule.php.