Exemplo n.º 1
0
// In a perfect world this wouldn't be necessary
$wgTitle = Title::makeTitle(NS_MAIN, 'API');
/* Construct an ApiMain with the arguments passed via the URL. What we get back
 * is some form of an ApiMain, possibly even one that produces an error message,
 * but we don't care here, as that is handled by the ctor.
 */
$processor = new ApiMain(RequestContext::getMain(), $wgEnableWriteAPI);
// Last chance hook before executing the API
try {
    wfRunHooks('ApiBeforeMain', array(&$processor));
    if (!$processor instanceof ApiMain) {
        throw new MWException('ApiBeforMain hook set $processor to a non-ApiMain class');
    }
} catch (Exception $e) {
    // Crap. Try to report the exception in API format to be friendly to clients.
    ApiMain::handleApiBeforeMainException($e);
    $processor = false;
}
// Process data & print results
if ($processor) {
    $processor->execute();
}
if (function_exists('fastcgi_finish_request')) {
    fastcgi_finish_request();
}
// Execute any deferred updates
DeferredUpdates::doUpdates();
// Log what the user did, for book-keeping purposes.
$endtime = microtime(true);
wfProfileOut('api.php');
wfLogProfilingData();