>
> Well, the only reason I can think of this happening is because something
> must have called MWNamespace::getCanonicalNamespaces before your extension
> initialized, thus causing the cache it has to be filled without the
> extension's namespaces. Maybe try calling
> MWNamespace::getCanonicalNamespaces( true ) to force regeneration?


Good call. This is part of the story. Part of what I had been doing in
the wgExtensionFunctions
hook was:

1) $wgCentralBannerDispatcher = "{$wgScript}/{$wgContLang->specialPage(
'BannerRandom' )}";
--> Eventually makes a call to Language->getNamespaces() which then caches
the localized namespace names

2) Add custom namespaces.

If I reverse the order it works. However -- because I've already created
the initial cache in Language -- and because this local cache does not get
invalidated when getCanonicalNamespaces(true) gets called -- anything
further down the initialization chain is stuffed.

To fix this I moved the (1) type calls to a ResourceLoaderGetConfigVars
hook where they're actually needed. But -- I'm wondering if this is
actually a bug in the Language object? Shouldn't it regenerate it's cache
when getCanonicalNamespaces changes? (There is a hook that it calls,
CanonicalNamespaces, that could potentially support this mechanism.)

~Matt Walker
_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to