if ( strlen( $params['stashedtexthash'] ) ) {
// Load from cache since the client indicates the text is the same as last stash
$textHash = $params['stashedtexthash'];
+ if ( !preg_match( '/^[0-9a-f]{40}$/', $textHash ) ) {
+ $this->dieWithError( 'apierror-stashedit-missingtext', 'missingtext' );
+ }
$textKey = $cache->makeKey( 'stashedit', 'text', $textHash );
$text = $cache->get( $textKey );
if ( !is_string( $text ) ) {
Hooks::run( 'ParserOutputStashForEdit',
[ $page, $content, $editInfo->output, $summary, $user ] );
+ $titleStr = (string)$title;
if ( $alreadyCached ) {
- $logger->debug( "Already cached parser output for key '$key' ('$title')." );
+ $logger->debug( "Already cached parser output for key '{cachekey}' ('{title}').",
+ [ 'cachekey' => $key, 'title' => $titleStr ] );
return self::ERROR_NONE;
}
if ( $stashInfo ) {
$ok = $cache->set( $key, $stashInfo, $ttl );
if ( $ok ) {
- $logger->debug( "Cached parser output for key '$key' ('$title')." );
+ $logger->debug( "Cached parser output for key '{cachekey}' ('{title}').",
+ [ 'cachekey' => $key, 'title' => $titleStr ] );
return self::ERROR_NONE;
} else {
- $logger->error( "Failed to cache parser output for key '$key' ('$title')." );
+ $logger->error( "Failed to cache parser output for key '{cachekey}' ('{title}').",
+ [ 'cachekey' => $key, 'title' => $titleStr ] );
return self::ERROR_CACHE;
}
} else {
- $logger->info( "Uncacheable parser output for key '$key' ('$title') [$code]." );
+ $logger->info( "Uncacheable parser output for key '{cachekey}' ('{title}') [{code}].",
+ [ 'cachekey' => $key, 'title' => $titleStr, 'code' => $code ] );
return self::ERROR_UNCACHEABLE;
}
}