[Toolserver-l] Internally calling the MediaWiki API on Toolserver

Ilmari Karonen nospam at vyznev.net
Sun Feb 6 01:14:46 UTC 2011


On 02/06/2011 12:42 AM, Krinkle wrote:

> So I was thinking :
> * upload a mediawiki install (the same version that WMF runs, ie.
> 1.16wmf4 or 1.17wmf1)
> * make it not publically accessable (we don't want people actually
> browsing the wiki)
> * Configure it in a special way so that one can use the same code for
> any wiki (ie. a $lang and $family variable of some kind)

So you basically want to set up an internal copy of MediaWiki core so 
that it can run on the Toolserver databases in read-only mode, and 
provide a wrapper so that it can be conveniently accessed from PHP code?

That sounds potentially very useful, at least for people who write their 
tools in PHP.

> Then one can include includes/WebStart.php, and use the API (ie. using
> the huge library of quiries already in the MediaWiki core (ie.
> action=query&list=categorymembers, using generators and getting
> properties, you name it) like this:
>
> <source>
> $site = 'wikipedia';
> $lang = 'en';
> require( $mw_root . '/includes/WebStart.php' ); // loads all common
> code including LocalSettings.php
> // LocalSettings contains extra code to check for $site and $lang
> figuring out the correct $wgDBname,
> // $wgDBserver etc. a tiny bit like wmf's CommonSettings.php
>
> $apiRequest = array(
> 	'action' =>  'query',
> 	'list' =>  '...',
> 	/* etc. */
> );
> /* etc. */
> </source>

On the other hand, I'm not sure why you'd want to do that.  Calling the 
API internally via FauxRequest is basically a huge kluge.  I suppose it 
may sometimes be the easiest way to get a particular job done, but it's 
not really the first (or even second or third) solution I'd consider.

Most of the time, if you have direct access to the MediaWiki core 
classes, you really should just use them directly.

-- 
Ilmari Karonen



More information about the Toolserver-l mailing list