use Psr\Log\LoggerAwareInterface;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
+use Wikimedia\Rdbms\Database;
/**
* This class generates message blobs for use by ResourceLoader modules.
foreach ( $modules as $name => $module ) {
$key = $cacheKeys[$name];
if ( !isset( $result[$key] ) || $curTTLs[$key] === null || $curTTLs[$key] < 0 ) {
- $this->logger->info( 'Message blob cache-miss for {module}',
- [ 'module' => $name, 'cacheKey' => $key ]
- );
$blobs[$name] = $this->recacheMessageBlob( $key, $module, $lang );
} else {
// Use unexpired cache
return $this->getBlobs( $modules, $lang );
}
- /**
- * @deprecated since 1.27 Obsolete. Used to populate a cache table in the database.
- * @return bool
- */
- public function insertMessageBlob( $name, ResourceLoaderModule $module, $lang ) {
- return false;
- }
-
/**
* @since 1.27
* @param ResourceLoaderModule $module
$cache->set( $cacheKey, $blob,
// Add part of a day to TTL to avoid all modules expiring at once
$cache::TTL_WEEK + mt_rand( 0, $cache::TTL_DAY ),
- Database::getCacheSetOptions( wfGetDB( DB_SLAVE ) )
+ Database::getCacheSetOptions( wfGetDB( DB_REPLICA ) )
);
return $blob;
}
public function updateMessage( $key ) {
$moduleNames = $this->getResourceLoader()->getModulesByMessage( $key );
foreach ( $moduleNames as $moduleName ) {
- // Uses a holdoff to account for database slave lag (for MessageCache)
+ // Uses a holdoff to account for database replica DB lag (for MessageCache)
$this->wanCache->touchCheckKey( $this->wanCache->makeKey( __CLASS__, $moduleName ) );
}
}
}
$json = FormatJson::encode( (object)$messages );
+ // @codeCoverageIgnoreStart
if ( $json === false ) {
$this->logger->warning( 'Failed to encode message blob for {module} ({lang})', [
'module' => $module->getName(),
] );
$json = '{}';
}
+ // codeCoverageIgnoreEnd
return $json;
}
}