Make MessageCache::getMsgFromNamespace() process cache hook-defined keys
authorAaron Schulz <aschulz@wikimedia.org>
Sat, 23 Jun 2018 16:59:12 +0000 (17:59 +0100)
committerAaron Schulz <aschulz@wikimedia.org>
Sat, 23 Jun 2018 16:59:12 +0000 (17:59 +0100)
Change-Id: I6f8a0c002b54dc48bc3e6902ab1ba41b2f99412a

includes/cache/MessageCache.php

index b6213c1..0854a43 100644 (file)
@@ -32,7 +32,8 @@ use Wikimedia\Rdbms\Database;
 define( 'MSG_CACHE_VERSION', 2 );
 
 /**
- * Message cache
+ * Cache of messages that are defined by MediaWiki namespace pages or by hooks
+ *
  * Performs various MediaWiki namespace-related functions
  * @ingroup Cache
  */
@@ -980,14 +981,15 @@ class MessageCache {
                        }
                        // Fall through and try invididual message cache below
                } else {
-                       // XXX: This is not cached in process cache, should it?
                        $message = false;
                        Hooks::run( 'MessagesPreLoad', [ $title, &$message, $code ] );
                        if ( $message !== false ) {
-                               return $message;
+                               $this->mCache[$code][$title] = ' ' . $message;
+                       } else {
+                               $this->mCache[$code][$title] = '!NONEXISTENT';
                        }
 
-                       return false;
+                       return $message;
                }
 
                // Individual message cache key