}
$stats = RequestContext::getMain()->getStats();
- $cache = ObjectCache::newAccelerator( CACHE_ANYTHING );
+ $cache = ObjectCache::getLocalServerInstance( CACHE_ANYTHING );
- $key = wfGlobalCacheKey(
+ $key = $cache->makeGlobalKey(
'resourceloader',
'filter',
$filter,
$this->registerTestModules();
}
- $this->setMessageBlobStore( new MessageBlobStore() );
+ $this->setMessageBlobStore( new MessageBlobStore( $this ) );
}
/**
// Allow multiple modules to be registered in one call
$registrations = is_array( $name ) ? $name : array( $name => $info );
foreach ( $registrations as $name => $info ) {
- // Disallow duplicate registrations
+ // Warn on duplicate registrations
if ( isset( $this->moduleInfos[$name] ) ) {
// A module has already been registered by this name
- throw new MWException(
- 'ResourceLoader duplicate registration error. ' .
+ $this->logger->warning(
+ 'ResourceLoader duplicate registration warning. ' .
'Another module has already been registered as ' . $name
);
}
// Capture any PHP warnings from the output buffer and append them to the
// error list if we're in debug mode.
- if ( $context->getDebug() && strlen( $warnings = ob_get_contents() ) ) {
- $this->errors[] = $warnings;
+ if ( $context->getDebug() ) {
+ $warnings = ob_get_contents();
+ if ( strlen( $warnings ) ) {
+ $this->errors[] = $warnings;
+ }
}
// Save response to file cache unless there are errors
$exp = min( $maxage, $smaxage );
header( 'Expires: ' . wfTimestamp( TS_RFC2822, $exp + time() ) );
}
-
- // Send the current time expressed as fractional seconds since epoch,
- // with microsecond precision. This helps distinguish hits from misses
- // in edge caches.
- header( 'MediaWiki-Timestamp: ' . microtime( true ) );
}
/**
$response = $fileCache->fetchText();
// Capture any PHP warnings from the output buffer and append them to the
// response in a comment if we're in debug mode.
- if ( $context->getDebug() && strlen( $warnings = ob_get_contents() ) ) {
- $response = self::makeComment( $warnings ) . $response;
+ if ( $context->getDebug() ) {
+ $warnings = ob_get_contents();
+ if ( strlen( $warnings ) ) {
+ $response = self::makeComment( $warnings ) . $response;
+ }
}
// Remove the output buffer and output the response
ob_end_clean();
return $out;
}
+ /**
+ * Get names of modules that use a certain message.
+ *
+ * @param string $messageKey
+ * @return array List of module names
+ */
+ public function getModulesByMessage( $messageKey ) {
+ $moduleNames = array();
+ foreach ( $this->getModuleNames() as $moduleName ) {
+ $module = $this->getModule( $moduleName );
+ if ( in_array( $messageKey, $module->getMessages() ) ) {
+ $moduleNames[] = $moduleName;
+ }
+ }
+ return $moduleNames;
+ }
+
/* Static Methods */
/**