On 05/01/07, Tim Starling
<tstarling(a)wikimedia.org> wrote:
So here's what I've done in my working
copy, soon to be committed:
* Removed InitialiseMessages.inc and rebuildMessages.php
* During upgrade, delete all pages in the MediaWiki namespace which were
last modified by "MediaWiki default".
* Reoptimised the message cache for the sparse MediaWiki namespace.
The main message cache (i.e. the $wgDBname:messages key) will now be a
faithful representation of the contents of the MediaWiki namespace,
instead of (as it previously was) a representation of the contents of all
messages. If a page does not exist, it will not have a message cache key.
To solve the performance problems of having a small number of large items,
any page which is larger than some threshold (10KB by default) will only
have a placeholder stored in the main message cache, instead of the
complete page text. The full contents of these items are stored separately
in the cache.
Sounds good, but...
...will this in any way affect the means by which extensions have to
add messages to the Message Cache? Will the existing interfaces still
work, or do we now have to update all the code, 'cause I'm concerned
about people breaking backwards compatibility again.
The only interface change is that I've renamed getFromCache() to the more
accurate getMsgFromNamespace(), but that function was implicitly private.
Anything that accesses $wgMessageCache->mCache directly will be broken.
But the usual public interfaces such as addMessages() and get() are preserved.
I'm usually pretty careful these days to maintain interface compatibility,
but it was no challenge this time around, since the code changes are
fairly minimal.
-- Tim Starling