'mediawiki.skinning.interface',
);
- if ( file_exists( "$wgStyleDirectory/Vector/Vector.php" ) ) {
+ $resourceLoader = new ResourceLoader();
+
+ if ( file_exists( "$wgStyleDirectory/Vector/skin.json" ) ) {
// Force loading Vector skin if available as a fallback skin
// for whatever ResourceLoader wants to have as the default.
-
- // Include instead of require, as this will work without it, it will just look bad.
- // We need the 'global' statement for $wgResourceModules because the Vector skin adds the
- // definitions for its RL modules there that we use implicitly below.
-
- // @codingStandardsIgnoreStart
- global $wgResourceModules; // This is NOT UNUSED!
- // @codingStandardsIgnoreEnd
-
- include_once "$wgStyleDirectory/Vector/Vector.php";
+ $registry = new ExtensionRegistry();
+ $data = $registry->readFromQueue( array(
+ "$wgStyleDirectory/Vector/skin.json" => 1,
+ ) );
+ if ( isset( $data['globals']['wgResourceModules'] ) ) {
+ $resourceLoader->register( $data['globals']['wgResourceModules'] );
+ }
$moduleNames[] = 'skins.vector.styles';
}
$moduleNames[] = 'mediawiki.legacy.config';
- $resourceLoader = new ResourceLoader();
$rlContext = new ResourceLoaderContext( $resourceLoader, new FauxRequest( array(
'debug' => 'true',
'lang' => $this->getLanguageCode(),
foreach ( $moduleNames as $moduleName ) {
/** @var ResourceLoaderFileModule $module */
$module = $resourceLoader->getModule( $moduleName );
+ if ( !$module ) {
+ // T98043: Don't fatal, but it won't look as pretty.
+ continue;
+ }
// Based on: ResourceLoaderFileModule::getStyles (without the DB query)
$styles = array_merge( $styles, ResourceLoader::makeCombinedStyles(
}
public function __construct() {
- $this->cache = ObjectCache::newAccelerator( array(), CACHE_NONE );
+ // We use a try/catch instead of the $fallback parameter because
+ // we don't want to fail here if $wgObjectCaches is not configured
+ // properly for APC setup
+ try {
+ $this->cache = ObjectCache::newAccelerator( array() );
+ } catch ( MWException $e ) {
+ $this->cache = new EmptyBagOStuff();
+ }
}
/**