* of a specific loader request.
*/
class ResourceLoaderContext implements MessageLocalizer {
+ const DEFAULT_LANG = 'qqx';
+ const DEFAULT_SKIN = 'fallback';
+
protected $resourceLoader;
protected $request;
protected $logger;
$this->request = $request;
$this->logger = $resourceLoader->getLogger();
- // Future developers: Use WebRequest::getRawVal() instead of getVal().
- // The getVal() method performs slow Language+UTF logic. (f303bb9360)
+ // Optimisation: Use WebRequest::getRawVal() instead of getVal(). We don't
+ // need the slow Language+UTF logic meant for user input here. (f303bb9360)
// List of modules
$modules = $request->getRawVal( 'modules' );
// Various parameters
$this->user = $request->getRawVal( 'user' );
$this->debug = $request->getRawVal( 'debug' ) === 'true';
- $this->only = $request->getRawVal( 'only', null );
- $this->version = $request->getRawVal( 'version', null );
+ $this->only = $request->getRawVal( 'only' );
+ $this->version = $request->getRawVal( 'version' );
$this->raw = $request->getFuzzyBool( 'raw' );
// Image requests
// The 'skin' parameter is required. (Not yet enforced.)
// For requests without a known skin specified,
// use MediaWiki's 'fallback' skin for skin-specific decisions.
- $this->skin = 'fallback';
+ $this->skin = self::DEFAULT_SKIN;
}
}
- /**
- * Reverse the process done by ResourceLoader::makePackedModulesString().
- *
- * @deprecated since 1.33 Use ResourceLoader::expandModuleNames instead.
- * @param string $modules Packed module name list
- * @return array Array of module names
- * @codeCoverageIgnore
- */
- public static function expandModuleNames( $modules ) {
- wfDeprecated( __METHOD__, '1.33' );
- return ResourceLoader::expandModuleNames( $modules );
- }
-
/**
* Return a dummy ResourceLoaderContext object suitable for passing into
* things that don't "really" need a context.
* @deprecated since 1.34 Use ResourceLoaderModule::getConfig instead
* inside module methods. Use ResourceLoader::getConfig elsewhere.
* @return Config
+ * @codeCoverageIgnore
*/
public function getConfig() {
+ wfDeprecated( __METHOD__, '1.34' );
return $this->getResourceLoader()->getConfig();
}
if ( !Language::isValidBuiltInCode( $lang ) ) {
// The 'lang' parameter is required. (Not yet enforced.)
// If omitted, localise with the dummy language code.
- $lang = 'qqx';
+ $lang = self::DEFAULT_LANG;
}
$this->language = $lang;
}
}
return $this->hash;
}
+
+ /**
+ * Get the request base parameters, omitting any defaults.
+ *
+ * @internal For internal use by ResourceLoaderStartUpModule only
+ * @return array
+ */
+ public function getReqBase() {
+ $reqBase = [];
+ if ( $this->getLanguage() !== self::DEFAULT_LANG ) {
+ $reqBase['lang'] = $this->getLanguage();
+ }
+ if ( $this->getSkin() !== self::DEFAULT_SKIN ) {
+ $reqBase['skin'] = $this->getSkin();
+ }
+ if ( $this->getDebug() ) {
+ $reqBase['debug'] = 'true';
+ }
+ return $reqBase;
+ }
}