"Dmitriy Sintsov" <[email protected]> wrote in message 
news:[email protected]...
> * Happy-melon <[email protected]> [Fri, 4 Jun 2010 00:33:30 +0100]:
>>
>>
>> One way to achieve this would be to develop the MediaWiki class to
>> actually
>> be what it originally promised: an object representing a wiki, of
> which
>> there can in principle be more than one instantiated at any one time.
>> Configuration options could determine how the MediaWiki object
> accesses
>> data, and consequently what sub-entities it is able to produce.
>>
> Current MediaWiki class has some shortcomings. For example, when I've
> tried to setup rendering urls in my very own way and not using
> mod_rewrite, I've "cloned" and "refactored" index.php. The problem was
> with the following call:
>
> # warning: although instances of OutputPage and others are passed,
> # they are sometimes used as "fixed" wg* globals in other classes
> # so you cannot pass a non-global here, or use the different names
> # of passed instances
> $MW->initialize( $wgTitle, $wgArticle, $wgOut, $wgUser, $wgRequest );
>
> First, I've made an instance of OutputPage with variable name different
> from default $wgOut. And $wgArticle, too. The engine didn't work as
> expected, it still was looking for the default names here and there. I
> was forced to use default wgOut and wgArticle names. But, then, there is
> no real incapsulation and there is no point to pass these as method
> parameters..
>
> I'd imagine that "emulated" request or api through the local farm can be
> done really fast, while real remote interwiki call would be done in
> usual way (api).
> Dmitriy

Indeed; it does need a lot of work; doing it properly would probably 
deprecate all the state globals ($wg(Title|Parser|Article|Out|Request) etc); 
replacing them with member variables of the MediaWiki class.  How other 
classes would access those variables is an interesting question; I could see 
an Article::getWiki()->getOut() chain, but that won't work for static 
functions.  It would be a major overhaul, but would probably kill several 
birds with one stone.

--HM
 



_______________________________________________
Wikitech-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to