MediaWiki master
MediaWiki\ResourceLoader\CodexModule Class Reference

Module for codex that has direction-specific style files and a static helper function for embedding icons in package modules. More...

Inherits MediaWiki\ResourceLoader\FileModule.

Collaboration diagram for MediaWiki\ResourceLoader\CodexModule:

Public Member Functions

 __construct (array $options=[], $localBasePath=null, $remoteBasePath=null)
 
 getDefinitionSummary (Context $context)
 Get the definition summary for this module.
 
 getPackageFiles (Context $context)
 Resolve the package files definition and generate the content of each package file.
 
 getStyleFiles (Context $context)
 Get a list of file paths for all styles in this module, in order of proper inclusion.
 
 supportsURLLoading ()
 
- Public Member Functions inherited from MediaWiki\ResourceLoader\FileModule
 __construct (array $options=[], string $localBasePath=null, string $remoteBasePath=null)
 Construct a new module from an options array.
 
 enableModuleContentVersion ()
 Disable module content versioning.
 
 getAllStyleFiles ()
 Get all style files and all skin style files used by this module.
 
 getDependencies (Context $context=null)
 Get names of modules this module depends on.
 
 getFlip (Context $context)
 Get whether CSS for this module should be flipped.
 
 getGroup ()
 Get the name of the group this module should be loaded in.
 
 getMessages ()
 Get message keys used by this module.
 
 getScript (Context $context)
 Get all JS for this module for a given language and skin.
 
 getScriptURLsForDebug (Context $context)
 
 getSkipFunction ()
 
 getStyles (Context $context)
 Get all styles for a given context.
 
 getStyleSheetLang ( $path)
 Infer the stylesheet language from a stylesheet file path.
 
 getStyleURLsForDebug (Context $context)
 
 getTemplates ()
 Get content of named templates for this module.
 
 getType ()
 Get the module's load type.
 
 readStyleFiles (array $styles, Context $context)
 Read the contents of a list of CSS files and remap and concatenate these.
 
 requiresES6 ()
 Whether the module requires ES6 support in the client.
 
 setSkinStylesOverride (array $moduleSkinStyles)
 Provide overrides for skinStyles to modules that support that.
 
 shouldSkipStructureTest ()
 Whether to skip the structure test ResourcesTest::testRespond() for this module.
 
- Public Member Functions inherited from MediaWiki\ResourceLoader\Module
 getConfig ()
 
 getDeprecationInformation (Context $context)
 Get JS representing deprecation information for the current module if available.
 
 getDeprecationWarning ()
 Get the deprecation warning, if any.
 
 getHeaders (Context $context)
 Get headers to send as part of a module web response.
 
 getModuleContent (Context $context)
 Get an array of this module's resources.
 
 getName ()
 Get this module's name.
 
 getOrigin ()
 Get this module's origin.
 
 getSkins ()
 Get list of skins for which this module must be available to load.
 
 getSource ()
 Get the source of this module.
 
 getVersionHash (Context $context)
 Get a string identifying the current version of this module in a given context.
 
 isKnownEmpty (Context $context)
 Check whether this module is known to be empty.
 
 setConfig (Config $config)
 
 setDependencyAccessCallbacks (callable $loadCallback, callable $saveCallback)
 Inject the functions that load/save the indirect file path dependency list from storage.
 
 setFileDependencies (Context $context, array $paths)
 Set the indirect dependencies for this module pursuant to the skin/language context.
 
 setHookContainer (HookContainer $hookContainer)
 
 setLogger (LoggerInterface $logger)
 
 setMessageBlob ( $blob, $lang)
 Set in-object cache for message blobs.
 
 setName ( $name)
 Set this module's name.
 
 shouldEmbedModule (Context $context)
 Check whether this module should be embedded rather than linked.
 

Static Public Member Functions

static getIcons (Context $context, Config $config, array $iconNames=[])
 Retrieve the specified icon definitions from codex-icons.json.
 
- Static Public Member Functions inherited from MediaWiki\ResourceLoader\FileModule
static extractBasePaths (array $options=[], $localBasePath=null, $remoteBasePath=null)
 Extract a pair of local and remote base paths from module definition information.
 
static getPackageFileType ( $path)
 Infer the file type from a package file path.
 
- Static Public Member Functions inherited from MediaWiki\ResourceLoader\Module
static expandRelativePaths (array $filePaths)
 Expand directories relative to $IP.
 
static getRelativePaths (array $filePaths)
 Make file paths relative to MediaWiki directory.
 
static getVary (Context $context)
 Get vary string.
 

Protected Member Functions

 processStyle ( $style, $styleLang, $path, Context $context)
 Process a CSS/LESS string.
 
- Protected Member Functions inherited from MediaWiki\ResourceLoader\FileModule
 compileLessString ( $style, $stylePath, Context $context)
 Compile a LESS string into CSS.
 
 getAllSkinStyleFiles ()
 Get a list of file paths for all skin style files in the module, for all available skins.
 
 getLocalPath ( $path)
 
 getPath ( $path)
 
 getRemotePath ( $path)
 
 getSkinStyleFiles ( $skinName)
 Get a list of file paths for all skin styles in the module used by the skin.
 
 getVueComponentParser ()
 
 readStyleFile ( $path, Context $context)
 Read and process a style file.
 
 stripBom ( $input)
 Take an input string and remove the UTF-8 BOM character if present.
 
- Protected Member Functions inherited from MediaWiki\ResourceLoader\Module
 buildContent (Context $context)
 Bundle all resources attached to this module into an array.
 
 getFileDependencies (Context $context)
 Get the indirect dependencies for this module pursuant to the skin/language context.
 
 getHookRunner ()
 Get a HookRunner for running core hooks.
 
 getLessVars (Context $context)
 Get module-specific LESS variables, if any.
 
 getLogger ()
 
 getMessageBlob (Context $context)
 Get the hash of the message blob.
 
 getPreloadLinks (Context $context)
 Get a list of resources that web browsers may preload.
 
 saveFileDependencies (Context $context, array $curFileRefs)
 Save the indirect dependencies for this module pursuant to the skin/language context.
 
 validateScriptFile ( $fileName, $contents)
 Validate a user-provided JavaScript blob.
 

Protected Attributes

const CODEX_LIBRARY_DIR = 'resources/lib/codex/'
 
- Protected Attributes inherited from MediaWiki\ResourceLoader\FileModule
bool $debugRaw = true
 Link to raw files in debug mode.
 
array< int, string|FilePath$debugScripts = []
 List of paths to JavaScript files to include in debug mode.
 
string[] $dependencies = []
 List of modules this module depends on.
 
null string $group = null
 Name of group to load this module in.
 
bool $hasGeneratedStyles = false
 Whether getStyleURLsForDebug should return raw file paths, or return load.php urls.
 
array< string, array< int, string|FilePath > > $languageScripts = []
 Lists of JavaScript files by language code.
 
string $localBasePath = ''
 Local base path, see __construct()
 
string[] $localFileRefs = []
 Place where readStyleFile() tracks file dependencies.
 
string[] $messages = []
 List of message keys used by this module.
 
string[] $missingLocalFileRefs = []
 Place where readStyleFile() tracks file dependencies for non-existent files.
 
bool $noflip = false
 Whether CSSJanus flipping should be skipped for this module.
 
null array $packageFiles = null
 Packaged files definition, to bundle and make available client-side via require().
 
string $remoteBasePath = ''
 Remote base path, see __construct()
 
array< int, string|FilePath$scripts = []
 List of JavaScript file paths to always include.
 
array< string, array< int, string|FilePath > > $skinScripts = []
 Lists of JavaScript files by skin name.
 
array< string, array< int, string|FilePath > > $skinStyles = []
 Lists of CSS files by skin name.
 
null string $skipFunction = null
 File name containing the body of the skip function.
 
bool $skipStructureTest = false
 Whether to skip the structure test ResourcesTest::testRespond()
 
array< int, string|FilePath$styles = []
 List of CSS file files to always include.
 
array< int|string, string|FilePath$templates = []
 List of the named templates used by this module.
 
VueComponentParser null $vueComponentParser = null
 Lazy-created by getVueComponentParser()
 
- Protected Attributes inherited from MediaWiki\ResourceLoader\Module
Config $config
 
array $contents = []
 Map of (context hash => cached module content)
 
string bool $deprecated = false
 Deprecation string or true if deprecated; false otherwise.
 
array $fileDeps = []
 Map of (variant => indirect file dependencies)
 
LoggerInterface $logger
 
array $msgBlobs = []
 Map of (language => in-object cache for message blob)
 
string null $name = null
 Module name.
 
int $origin = self::ORIGIN_CORE_SITEWIDE
 Script and style modules form a hierarchy of trustworthiness, with core modules like skins and jQuery as most trustworthy, and user scripts as least trustworthy.
 
string[] null $skins = null
 Skin names.
 
array $versionHash = []
 Map of (context hash => cached module version hash)
 

Additional Inherited Members

- Static Protected Member Functions inherited from MediaWiki\ResourceLoader\FileModule
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 MediaWiki\ResourceLoader\Module
static safeFileHash ( $filePath)
 Compute a non-cryptographic string hash of a file's contents.
 

Detailed Description

Module for codex that has direction-specific style files and a static helper function for embedding icons in package modules.

This module also contains logic to support code-splitting (aka tree-shaking) of the Codex library to return only a subset of component JS and/or CSS files.

Access: internal

Definition at line 39 of file CodexModule.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\ResourceLoader\CodexModule::__construct ( array $options = [],
$localBasePath = null,
$remoteBasePath = null )
Parameters
array$options[optional]
  • codexComponents: array of Codex components to include
  • codexFullLibrary: whether to load the entire Codex library
  • codexStyleOnly: whether to include only style files
  • codexScriptOnly: whether to include only script files
string | null$localBasePath[optional]
string | null$remoteBasePath[optional]

Definition at line 83 of file CodexModule.php.

References MediaWiki\ResourceLoader\FileModule\$localBasePath, and MediaWiki\ResourceLoader\FileModule\$remoteBasePath.

Member Function Documentation

◆ getDefinitionSummary()

MediaWiki\ResourceLoader\CodexModule::getDefinitionSummary ( Context $context)

Get the definition summary for this module.

Parameters
Context$context
Returns
array

Reimplemented from MediaWiki\ResourceLoader\FileModule.

Definition at line 199 of file CodexModule.php.

◆ getIcons()

static MediaWiki\ResourceLoader\CodexModule::getIcons ( Context $context,
Config $config,
array $iconNames = [] )
static

Retrieve the specified icon definitions from codex-icons.json.

Intended as a convenience function to be used in packageFiles definitions.

Example: "packageFiles": [ { "name": "icons.json", "callback": "MediaWiki\\\\ResourceLoader\\\\CodexModule::getIcons", "callbackParam": [ "cdxIconClear", "cdxIconTrash" ] } ]

Parameters
Context$context
Config$config
string[]$iconNamesNames of icons to fetch
Returns
array

Definition at line 162 of file CodexModule.php.

◆ getPackageFiles()

MediaWiki\ResourceLoader\CodexModule::getPackageFiles ( Context $context)

Resolve the package files definition and generate the content of each package file.

Parameters
Context$context
Returns
array|null Package files data structure, see Module::getScript()

Reimplemented from MediaWiki\ResourceLoader\FileModule.

Definition at line 174 of file CodexModule.php.

◆ getStyleFiles()

MediaWiki\ResourceLoader\CodexModule::getStyleFiles ( Context $context)

Get a list of file paths for all styles in this module, in order of proper inclusion.

Access: internal
Exposed only for use by structure phpunit tests.
Parameters
Context$context
Returns
array<string,array<int,string|FilePath>> Map from media type to list of file paths

Reimplemented from MediaWiki\ResourceLoader\FileModule.

Definition at line 179 of file CodexModule.php.

◆ processStyle()

MediaWiki\ResourceLoader\CodexModule::processStyle ( $style,
$styleLang,
$path,
Context $context )
protected

Process a CSS/LESS string.

This method performs the following processing steps:

  • LESS compilation (if $styleLang = 'less')
  • RTL flipping with CSSJanus (if getFlip() returns true)
  • Registration of references to local files in $localFileRefs and $missingLocalFileRefs
  • URL remapping and data URI embedding
Access: internal
Parameters
string$styleCSS or LESS code
string$styleLangLanguage of $style code ('css' or 'less')
string | FilePath$pathPath to code file, used for resolving relative file paths
Context$context
Returns
string Processed CSS code

Reimplemented from MediaWiki\ResourceLoader\FileModule.

Definition at line 184 of file CodexModule.php.

References $path, and MediaWiki\ResourceLoader\FilePath\getPath().

◆ supportsURLLoading()

MediaWiki\ResourceLoader\CodexModule::supportsURLLoading ( )
Returns
bool

Reimplemented from MediaWiki\ResourceLoader\FileModule.

Definition at line 204 of file CodexModule.php.

Member Data Documentation

◆ CODEX_LIBRARY_DIR

const MediaWiki\ResourceLoader\CodexModule::CODEX_LIBRARY_DIR = 'resources/lib/codex/'
protected

Definition at line 40 of file CodexModule.php.


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