MediaWiki
master
|
The MediaWiki class is the helper class for the index.php entry point. More...
Classes | |
class | MediaWikiServices |
MediaWikiServices is the service locator for the application scope of MediaWiki. More... | |
class | OutputHandler |
Public Member Functions | |
__construct (IContextSource $context=null) | |
doPostOutputShutdown () | |
This function does work that can be done after the user gets the HTTP response so they don't block on it. More... | |
doPreOutputCommit (callable $postCommitWork=null) | |
getAction () | |
Returns the name of the action that will be executed. More... | |
getTitle () | |
Get the Title object that we'll be acting on, as specified in the WebRequest. More... | |
restInPeace () | |
Ends this task peacefully. More... | |
run () | |
Run the current MediaWiki instance; index.php just calls this. More... | |
triggerJobs () | |
Potentially open a socket and sent an HTTP request back to the server to run a specified number of jobs. More... | |
Static Public Member Functions | |
static | emitBufferedStatsdData (IBufferingStatsdDataFactory $stats, Config $config) |
Send out any buffered statsd data according to sampling rules. More... | |
static | preOutputCommit (IContextSource $context, callable $postCommitWork=null) |
This function commits all DB and session changes as needed before the client can receive a response (in case DB commit fails) and thus also before the response can trigger a subsequent related request by the client. More... | |
Private Member Functions | |
initializeArticle () | |
Initialize the main Article object for "standard" actions (view, etc) Create an Article object for the page, following redirects if needed. More... | |
main () | |
Determine and send the response headers and body for this web request. More... | |
maybeDoHttpsRedirect () | |
If the stars are suitably aligned, do an HTTP->HTTPS redirect. More... | |
outputResponsePayload ( $content) | |
Set the actual output and attempt to flush it to the client if necessary. More... | |
parseTitle () | |
Parse the request to get the Title object. More... | |
performAction (Article $article, Title $requestTitle) | |
Perform one of the "standard" actions. More... | |
performRequest () | |
Performs the request. More... | |
schedulePostSendJobs () | |
If enabled, after everything specific to this request is done, occasionally run jobs. More... | |
setDBProfilingAgent () | |
Add a comment to future SQL queries for easy SHOW PROCESSLIST interpretation. More... | |
shouldDoHttpRedirect () | |
Check if an HTTP->HTTPS redirect should be done. More... | |
triggerAsyncJobs ( $n, LoggerInterface $runJobsLogger) | |
triggerSyncJobs ( $n) | |
tryNormaliseRedirect (Title $title) | |
Handle redirects for uncanonical title requests. More... | |
Static Private Member Functions | |
static | getUrlDomainDistance ( $url) |
Private Attributes | |
string | $action |
Cache what action this request is. More... | |
Config | $config |
IContextSource | $context |
int | $postSendStrategy |
Class DEFER_* constant; how non-blocking post-response tasks should run. More... | |
The MediaWiki class is the helper class for the index.php entry point.
Definition at line 35 of file MediaWiki.php.
MediaWiki::__construct | ( | IContextSource | $context = null | ) |
IContextSource | null | $context |
Definition at line 56 of file MediaWiki.php.
References $context, and RequestContext\getMain().
MediaWiki::doPostOutputShutdown | ( | ) |
This function does work that can be done after the user gets the HTTP response so they don't block on it.
This manages deferred updates, job insertion, final commit, and the logging of profiling data
Definition at line 814 of file MediaWiki.php.
References WebResponse\disableForPostSend(), Profiler\instance(), MWExceptionHandler\logException(), restInPeace(), and MWExceptionHandler\rollbackMasterChangesAndLog().
Referenced by run().
MediaWiki::doPreOutputCommit | ( | callable | $postCommitWork = null | ) |
callable | null | $postCommitWork | [default: null] |
Definition at line 649 of file MediaWiki.php.
References preOutputCommit().
|
static |
Send out any buffered statsd data according to sampling rules.
IBufferingStatsdDataFactory | $stats | |
Config | $config |
ConfigException |
Definition at line 1117 of file MediaWiki.php.
References $config, IBufferingStatsdDataFactory\clearData(), Config\get(), IBufferingStatsdDataFactory\getData(), IBufferingStatsdDataFactory\hasData(), and MWExceptionHandler\logException().
Referenced by Maintenance\output(), Maintenance\setLBFactoryTriggers(), and wfLogProfilingData().
MediaWiki::getAction | ( | ) |
Returns the name of the action that will be executed.
Definition at line 166 of file MediaWiki.php.
References $action, and Action\getActionName().
Referenced by main(), and performAction().
MediaWiki::getTitle | ( | ) |
Get the Title object that we'll be acting on, as specified in the WebRequest.
Definition at line 150 of file MediaWiki.php.
References SpecialPage\getTitleFor(), and parseTitle().
Referenced by main(), schedulePostSendJobs(), and triggerJobs().
|
staticprivate |
string | $url |
Definition at line 793 of file MediaWiki.php.
References WikiMap\getWikiFromUrl(), and WikiMap\isCurrentWikiId().
Referenced by preOutputCommit().
|
private |
Initialize the main Article object for "standard" actions (view, etc) Create an Article object for the page, following redirects if needed.
Definition at line 409 of file MediaWiki.php.
References $action, $file, $title, MediaWiki\MediaWikiServices\getInstance(), Article\newFromWikiPage(), and wfWarn().
Referenced by performRequest().
|
private |
Determine and send the response headers and body for this web request.
Definition at line 864 of file MediaWiki.php.
References $action, $cache, $title, $wgTitle, doPreOutputCommit(), getAction(), getTitle(), Profiler\instance(), Title\makeTitle(), maybeDoHttpsRedirect(), NS_SPECIAL, outputResponsePayload(), performRequest(), schedulePostSendJobs(), and HTMLFileCache\useFileCache().
Referenced by run().
|
private |
If the stars are suitably aligned, do an HTTP->HTTPS redirect.
Note: Do this after $wgTitle is setup, otherwise the hooks run from isRegistered() will do all sorts of weird stuff.
Definition at line 997 of file MediaWiki.php.
References $title, Title\newFromText(), NS_MAIN, shouldDoHttpRedirect(), and wfDebugLog().
Referenced by main().
|
private |
Set the actual output and attempt to flush it to the client if necessary.
No PHP buffers should be active at this point
string | $content |
Definition at line 1041 of file MediaWiki.php.
References $content, and DeferredUpdates\pendingUpdatesCount().
Referenced by main().
|
private |
Parse the request to get the Title object.
MalformedTitleException | If a title has been provided by the user, but is invalid. |
Definition at line 72 of file MediaWiki.php.
References $action, $title, MediaWiki\MediaWikiServices\getInstance(), SpecialPage\getTitleFor(), Title\makeTitle(), Title\newFromID(), Title\newFromLinkTarget(), Title\newFromTextThrow(), Title\newFromURL(), Title\newMainPage(), NS_FILE, and NS_MEDIA.
Referenced by getTitle(), and performRequest().
Perform one of the "standard" actions.
Definition at line 494 of file MediaWiki.php.
References $action, $title, Action\factory(), getAction(), MediaWiki\MediaWikiServices\getInstance(), Profiler\instance(), PROTO_INTERNAL, and wfExpandUrl().
Referenced by performRequest().
|
private |
Performs the request.
MWException|PermissionsError|BadTitleError|HttpError |
Definition at line 186 of file MediaWiki.php.
References $title, $wgTitle, MediaWiki\MediaWikiServices\getInstance(), SpecialPage\getTitleFor(), initializeArticle(), parseTitle(), performAction(), and tryNormaliseRedirect().
Referenced by main().
|
static |
This function commits all DB and session changes as needed before the client can receive a response (in case DB commit fails) and thus also before the response can trigger a subsequent related request by the client.
If there is a significant amount of content to flush, it can be done in $postCommitWork
IContextSource | $context | |
callable | null | $postCommitWork | [default: null] |
Definition at line 664 of file MediaWiki.php.
References $config, $context, DeferredUpdates\doUpdates(), Config\get(), IContextSource\getConfig(), MediaWiki\MediaWikiServices\getInstance(), IContextSource\getOutput(), IContextSource\getRequest(), getUrlDomainDistance(), IContextSource\getUser(), MWExceptionHandler\logException(), wfDebug(), and wfDebugLog().
Referenced by doPreOutputCommit(), MediaWiki\Rest\EntryPoint\execute(), and ApiMain\executeActionWithErrorHandling().
MediaWiki::restInPeace | ( | ) |
Ends this task peacefully.
Definition at line 1078 of file MediaWiki.php.
References DeferredUpdates\doUpdates(), MediaWiki\MediaWikiServices\getInstance(), Profiler\instance(), wfDebug(), and wfLogProfilingData().
Referenced by doPostOutputShutdown().
MediaWiki::run | ( | ) |
Run the current MediaWiki instance; index.php just calls this.
Definition at line 543 of file MediaWiki.php.
References $action, $cache, $context, doPostOutputShutdown(), doPreOutputCommit(), MWExceptionRenderer\getHTML(), IContextSource\getRequest(), IContextSource\getTitle(), MWExceptionHandler\handleException(), main(), HTMLFileCache\MODE_OUTAGE, ErrorPageError\report(), setDBProfilingAgent(), ErrorPageError\STAGE_OUTPUT, and HTMLFileCache\useFileCache().
Referenced by MediaWiki\Rest\SimpleHandler\execute().
|
private |
If enabled, after everything specific to this request is done, occasionally run jobs.
Definition at line 601 of file MediaWiki.php.
References DeferredUpdates\addUpdate(), getTitle(), triggerAsyncJobs(), triggerSyncJobs(), and wfReadOnly().
Referenced by main().
|
private |
Add a comment to future SQL queries for easy SHOW PROCESSLIST interpretation.
Definition at line 590 of file MediaWiki.php.
References MediaWiki\MediaWikiServices\getInstance().
Referenced by run().
|
private |
Check if an HTTP->HTTPS redirect should be done.
It may still be aborted by a hook, so this is not the final word.
Definition at line 953 of file MediaWiki.php.
References PROTO_HTTPS, and wfExpandUrl().
Referenced by maybeDoHttpsRedirect().
|
private |
int | $n | Number of jobs to try to run |
LoggerInterface | $runJobsLogger |
Definition at line 1200 of file MediaWiki.php.
References MediaWiki\MediaWikiServices\getInstance(), SpecialRunJobs\getQuerySignature(), JobQueueGroup\singleton(), JobQueueGroup\TYPE_DEFAULT, and wfParseUrl().
Referenced by schedulePostSendJobs(), and triggerJobs().
MediaWiki::triggerJobs | ( | ) |
Potentially open a socket and sent an HTTP request back to the server to run a specified number of jobs.
This registers a callback to cleanup the socket once it's done.
Definition at line 1143 of file MediaWiki.php.
References getTitle(), MWExceptionHandler\logException(), triggerAsyncJobs(), triggerSyncJobs(), and wfReadOnly().
|
private |
int | $n | Number of jobs to try to run |
Definition at line 1184 of file MediaWiki.php.
References MediaWiki\MediaWikiServices\getInstance(), and Profiler\instance().
Referenced by schedulePostSendJobs(), and triggerJobs().
|
private |
Handle redirects for uncanonical title requests.
Handles:
Behaviour:
Title | $title |
HttpError |
Definition at line 349 of file MediaWiki.php.
References $title, MediaWiki\MediaWikiServices\getInstance(), SpecialPage\getTitleFor(), PROTO_CURRENT, and wfExpandUrl().
Referenced by performRequest().
|
private |
Cache what action this request is.
Definition at line 44 of file MediaWiki.php.
Referenced by MediaWiki\Permissions\UserAuthority\authorizeRead(), MediaWiki\Permissions\UserAuthority\authorizeWrite(), MediaWiki\Permissions\PermissionManager\checkActionPermissions(), MediaWiki\Permissions\PermissionManager\checkCascadingSourcesRestrictions(), MediaWiki\Permissions\PermissionManager\checkPageRestrictions(), MediaWiki\Permissions\PermissionManager\checkPermissionHooks(), MediaWiki\Permissions\PermissionManager\checkQuickPermissions(), MediaWiki\Permissions\PermissionManager\checkReadPermissions(), MediaWiki\Permissions\PermissionManager\checkSiteConfigPermissions(), MediaWiki\Permissions\PermissionManager\checkSpecialsAndNSPermissions(), MediaWiki\Permissions\PermissionManager\checkUserBlock(), MediaWiki\Permissions\PermissionManager\checkUserConfigPermissions(), MediaWiki\Permissions\UserAuthority\definitelyCan(), MediaWiki\Auth\AuthManager\fillRequests(), getAction(), MediaWiki\Auth\AbstractPasswordPrimaryAuthenticationProvider\getAuthenticationRequests(), MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProvider\getAuthenticationRequests(), MediaWiki\Auth\AuthManager\getAuthenticationRequests(), MediaWiki\Permissions\PermissionManager\getPermissionErrors(), MediaWiki\Permissions\PermissionManager\getPermissionErrorsInternal(), initializeArticle(), MediaWiki\Permissions\UserAuthority\internalCan(), main(), MediaWiki\Permissions\PermissionManager\missingPermissionError(), MediaWiki\HookContainer\HookRunner\onAuthChangeFormFields(), MediaWiki\HookContainer\HookRunner\onGetUserPermissionsErrors(), MediaWiki\HookContainer\HookRunner\onGetUserPermissionsErrorsExpensive(), MediaWiki\HookContainer\HookRunner\onPingLimiter(), MediaWiki\HookContainer\HookRunner\onTitleQuickPermissions(), MediaWiki\HookContainer\HookRunner\onUserCan(), parseTitle(), performAction(), MediaWiki\Permissions\UserAuthority\probablyCan(), MediaWiki\Permissions\PermissionManager\quickUserCan(), run(), MediaWiki\Permissions\PermissionManager\userCan(), MediaWiki\Permissions\PermissionManager\userHasAllRights(), MediaWiki\Permissions\PermissionManager\userHasAnyRight(), MediaWiki\Permissions\PermissionManager\userHasRight(), and MediaWiki\Preferences\DefaultPreferencesFactory\watchlistPreferences().
|
private |
Definition at line 41 of file MediaWiki.php.
Referenced by MediaWiki\Auth\Throttler\__construct(), MediaWiki\Widget\CheckMatrixWidget\__construct(), MediaWiki\Widget\DateInputWidget\__construct(), MediaWiki\Widget\DateTimeInputWidget\__construct(), MediaWiki\Widget\NamespaceInputWidget\__construct(), MediaWiki\Widget\NamespacesMultiselectWidget\__construct(), MediaWiki\Widget\PendingTextInputWidget\__construct(), MediaWiki\Widget\SearchInputWidget\__construct(), MediaWiki\Widget\SpinnerWidget\__construct(), MediaWiki\Widget\TagMultiselectWidget\__construct(), MediaWiki\Widget\TitleInputWidget\__construct(), MediaWiki\Widget\TitlesMultiselectWidget\__construct(), MediaWiki\Widget\UserInputWidget\__construct(), MediaWiki\Widget\UsersMultiselectWidget\__construct(), MediaWiki\Config\ConfigRepository\add(), MediaWiki\Block\AbstractBlock\appliesToRight(), MediaWiki\Block\AbstractBlock\appliesToUsertalk(), MediaWiki\Preferences\SignatureValidator\checkLintErrors(), MediaWiki\Http\HttpRequestFactory\createGuzzleClient(), emitBufferedStatsdData(), MediaWiki\Widget\CheckMatrixWidget\getConfig(), MediaWiki\Widget\DateInputWidget\getConfig(), MediaWiki\Widget\DateTimeInputWidget\getConfig(), MediaWiki\Widget\ExpiryInputWidget\getConfig(), MediaWiki\Widget\NamespaceInputWidget\getConfig(), MediaWiki\Widget\NamespacesMultiselectWidget\getConfig(), MediaWiki\Widget\SearchInputWidget\getConfig(), MediaWiki\Widget\TagMultiselectWidget\getConfig(), MediaWiki\Widget\TitleInputWidget\getConfig(), MediaWiki\Widget\TitlesMultiselectWidget\getConfig(), MediaWiki\Widget\UserInputWidget\getConfig(), MediaWiki\Widget\UsersMultiselectWidget\getConfig(), MediaWiki\Config\ConfigRepository\getDescriptionOf(), MediaWiki\Auth\UserDataAuthenticationRequest\getFieldInfo(), MediaWiki\Widget\DateInputWidget\getInputElement(), MediaWiki\Widget\NamespaceInputWidget\getNamespaceDropdownOptions(), MediaWiki\Config\ConfigRepository\getValueOf(), MediaWiki\Auth\TemporaryPasswordAuthenticationRequest\newRandom(), MediaWiki\HookContainer\HookRunner\onResourceLoaderGetConfigVars(), MediaWiki\HookContainer\HookRunner\onSkinPageReadyConfig(), MediaWiki\HookContainer\HookRunner\onUploadForm_getInitialPageText(), preOutputCommit(), and MediaWiki\Preferences\SignatureValidator\validateSignature().
|
private |
Definition at line 39 of file MediaWiki.php.
Referenced by __construct(), MediaWiki\Shell\Command\__destruct(), MediaWiki\SpecialPage\SpecialPageFactory\capturePath(), MediaWiki\Storage\PageEditStash\checkCache(), MediaWiki\Permissions\PermissionManager\checkUserBlock(), MediaWiki\Logger\LogCapturingSpi\createLogger(), MediaWiki\Preferences\DefaultPreferencesFactory\datetimePreferences(), MediaWiki\Logger\LegacyLogger\destination(), Revision\RevisionStore\ensureRevisionRowMatchesPage(), Revision\RevisionStore\ensureRevisionRowMatchesTitle(), MediaWiki\SpecialPage\SpecialPageFactory\executePath(), MediaWiki\Logger\Monolog\LogstashFormatter\fixKeyConflicts(), MediaWiki\Logger\LegacyLogger\format(), MediaWiki\Logger\LegacyLogger\formatAsWfDebug(), MediaWiki\Logger\Monolog\LogstashFormatter\formatV0(), MediaWiki\Logger\Monolog\LogstashFormatter\formatV1(), MediaWiki\Preferences\DefaultPreferencesFactory\generateSkinOptions(), MediaWiki\Rest\Handler\ActionModuleBasedHandler\getApiMain(), Revision\ContributionsLookup\getContribsPager(), Revision\ContributionsLookup\getContributionCount(), Revision\ContributionsLookup\getContributions(), MediaWiki\Preferences\DefaultPreferencesFactory\getDateOptions(), MediaWiki\Preferences\DefaultPreferencesFactory\getForm(), MediaWiki\Preferences\DefaultPreferencesFactory\getFormDescriptor(), MediaWiki\User\UserOptionsManager\getOptionKinds(), MediaWiki\Block\AbstractBlock\getPermissionsError(), MediaWiki\Preferences\DefaultPreferencesFactory\getTimezoneOptions(), MediaWiki\Logger\LegacyLogger\interpolate(), MediaWiki\Preferences\DefaultPreferencesFactory\loadPreferenceValues(), MediaWiki\Logger\ConsoleLogger\log(), MediaWiki\Logger\LegacyLogger\log(), MediaWiki\Auth\Throttler\logRejection(), MediaWiki\EditPage\Constraint\EditConstraintFactory\newEditFilterMergedContentHookConstraint(), MediaWiki\Api\ApiHookRunner\onApiFeedContributions__feedItem(), MediaWiki\Api\ApiHookRunner\onApiFormatHighlight(), MediaWiki\HookContainer\HookRunner\onArticleFromTitle(), MediaWiki\HookContainer\HookRunner\onBeforeHttpsRedirect(), MediaWiki\HookContainer\HookRunner\onEditFilterMergedContent(), MediaWiki\HookContainer\HookRunner\onGetDifferenceEngine(), MediaWiki\HookContainer\HookRunner\onGetExtendedMetadata(), MediaWiki\HookContainer\HookRunner\onGetSlotDiffRenderer(), MediaWiki\HookContainer\HookRunner\onHistoryPageToolLinks(), MediaWiki\HookContainer\HookRunner\onHTMLFileCache__useFileCache(), MediaWiki\HookContainer\HookRunner\onInfoAction(), MediaWiki\HookContainer\HookRunner\onLinkerGenerateRollbackLink(), MediaWiki\HookContainer\HookRunner\onPageHistoryBeforeList(), MediaWiki\HookContainer\HookRunner\onRequestContextCreateSkin(), ResourceLoader\HookRunner\onResourceLoaderForeignApiModules(), MediaWiki\HookContainer\HookRunner\onResourceLoaderJqueryMsgModuleMagicWords(), MediaWiki\HookContainer\HookRunner\onSkinPageReadyConfig(), MediaWiki\HookContainer\HookRunner\onSpecialContributions__formatRow__flags(), MediaWiki\HookContainer\HookRunner\onSpecialStatsAddExtra(), MediaWiki\HookContainer\HookRunner\onUndeletePageToolLinks(), MediaWiki\HookContainer\HookRunner\onUserGetLanguageObject(), Revision\RenderedRevision\outputVariesOnRevisionMetaData(), MediaWiki\Storage\PageEditStash\parseAndCache(), preOutputCommit(), MediaWiki\Preferences\DefaultPreferencesFactory\profilePreferences(), MediaWiki\User\UserOptionsManager\resetOptions(), run(), MediaWiki\Logger\LegacyLogger\shouldEmit(), MediaWiki\Preferences\DefaultPreferencesFactory\skinPreferences(), MediaWiki\Preferences\DefaultPreferencesFactory\submitForm(), MediaWiki\Logger\Monolog\KafkaHandler\warning(), and MediaWiki\Preferences\DefaultPreferencesFactory\watchlistPreferences().
|
private |
Class DEFER_* constant; how non-blocking post-response tasks should run.
Definition at line 46 of file MediaWiki.php.