// 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();