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 ResourceLoaderLessVarFileModule.
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 627 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 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 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, $localBasePath, $options, $remoteBasePath, $wgExtensionAssetsPath, $wgResourceBasePath, $wgStylePath, 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 752 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 772 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 542 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, and ResourceLoaderLanguageNamesModule.
Definition at line 444 of file ResourceLoaderFileModule.php.
References $dependencies.
|
private |
Helper method for getDefinitionSummary.
ResourceLoaderContext | $context |
Definition at line 492 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 899 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 695 of file ResourceLoaderFileModule.php.
References $lang, $scripts, as, and tryForKey().
Referenced by getFileHashes(), and getScriptFiles().
|
protected |
string | ResourceLoaderFilePath | $path |
Definition at line 587 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.
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.
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, ResourceLoaderLanguageDataModule, ResourceLoaderLanguageNamesModule, and ResourceLoaderMediaWikiUtilModule.
Definition at line 351 of file ResourceLoaderFileModule.php.
References 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, 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 738 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, 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, $styles, 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.
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 908 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 992 of file ResourceLoaderFileModule.php.
References $content, $templates, as, getLocalPath(), stripBom(), and wfDebugLog().
ResourceLoaderFileModule::getType | ( | ) |
Get the module's load type.
Reimplemented from ResourceLoaderModule.
Definition at line 918 of file ResourceLoaderFileModule.php.
References $raw, ResourceLoaderModule\LOAD_GENERAL, ResourceLoaderModule\LOAD_STYLES, messages, and scripts.
ResourceLoaderFileModule::isRaw | ( | ) |
Reimplemented from ResourceLoaderModule.
Definition at line 469 of file ResourceLoaderFileModule.php.
References $raw.
|
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, $scripts, as, 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, $localFileRefs, $path, as, compileLessFile(), CSSMin\getLocalFileReferences(), getLocalPath(), getRemotePath(), getStyleSheetLang(), CSSMin\remap(), 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, $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 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.
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 | null | $fallback | Key to look for in $list if $key doesn't exist |
Definition at line 657 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 |
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 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(), ResourceLoaderLessVarFileModule\__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(), ResourceLoaderLessVarFileModule\__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().