MediaWiki  1.29.1
RequestContext Class Reference

Group all the pieces relevant to the context of a request into one instance. More...

Inheritance diagram for RequestContext:
Collaboration diagram for RequestContext:

Public Member Functions

 canUseWikiPage ()
 Check whether a WikiPage object can be get with getWikiPage(). More...
 
 exportSession ()
 Export the resolved user IP, HTTP headers, user ID, and session ID. More...
 
 getConfig ()
 Get the Config object. More...
 
 getLanguage ()
 Get the Language object. More...
 
 getOutput ()
 Get the OutputPage object. More...
 
 getRequest ()
 Get the WebRequest object. More...
 
 getSkin ()
 Get the Skin object. More...
 
 getStats ()
 Get the Stats object. More...
 
 getTiming ()
 Get the timing object. More...
 
 getTitle ()
 Get the Title object. More...
 
 getUser ()
 Get the User object. More...
 
 getWikiPage ()
 Get the WikiPage object. More...
 
 hasTitle ()
 Check, if a Title object is set. More...
 
 msg ()
 Helpful methods. More...
 
 setConfig (Config $c)
 Set the Config object. More...
 
 setLanguage ( $l)
 Set the Language object. More...
 
 setOutput (OutputPage $o)
 
 setRequest (WebRequest $r)
 Set the WebRequest object. More...
 
 setSkin (Skin $s)
 Set the Skin object. More...
 
 setTitle (Title $title=null)
 Set the Title object. More...
 
 setUser (User $u)
 Set the User object. More...
 
 setWikiPage (WikiPage $p)
 Set the WikiPage object. More...
 

Static Public Member Functions

static getMain ()
 Static methods. More...
 
static getMainAndWarn ( $func=__METHOD__)
 Get the RequestContext object associated with the main request and gives a warning to the log, to find places, where a context maybe is missing. More...
 
static importScopedSession (array $params)
 Import an client IP address, HTTP headers, user ID, and session ID. More...
 
static newExtraneousContext (Title $title, $request=[])
 Create a new extraneous context. More...
 
static resetMain ()
 Resets singleton returned by getMain(). More...
 
static sanitizeLangCode ( $code)
 Accepts a language code and ensures it's sane. More...
 

Private Attributes

Config $config
 
Language $lang
 
OutputPage $output
 
WebRequest $request
 
Skin $skin
 
Timing $timing
 
Title $title
 
User $user
 
WikiPage $wikipage
 

Static Private Attributes

static RequestContext $instance = null
 

Detailed Description

Group all the pieces relevant to the context of a request into one instance.

Definition at line 33 of file RequestContext.php.

Member Function Documentation

◆ canUseWikiPage()

RequestContext::canUseWikiPage ( )

Check whether a WikiPage object can be get with getWikiPage().

Callers should expect that an exception is thrown from getWikiPage() if this method returns false.

Since
1.19
Returns
bool

Implements IContextSource.

Definition at line 208 of file RequestContext.php.

References $title, Title\canExist(), and getTitle().

◆ exportSession()

RequestContext::exportSession ( )

Export the resolved user IP, HTTP headers, user ID, and session ID.

The result will be reasonably sized to allow for serialization.

Returns
array
Since
1.21

Implements IContextSource.

Definition at line 508 of file RequestContext.php.

References MediaWiki\Session\SessionManager\getGlobalSession(), getRequest(), and getUser().

◆ getConfig()

RequestContext::getConfig ( )

Get the Config object.

Returns
Config

Implements IContextSource.

Definition at line 98 of file RequestContext.php.

References $config.

Referenced by getLanguage(), and getSkin().

◆ getLanguage()

RequestContext::getLanguage ( )

Get the Language object.

Initialization of user or request objects can depend on this.

Returns
Language
Exceptions
Exception
Since
1.19

Implements IContextSource.

Definition at line 345 of file RequestContext.php.

References $code, $e, $lang, $request, $user, $wgContLang, Language\factory(), getConfig(), User\getOption(), getRequest(), getUser(), WebRequest\getVal(), global, Hooks\run(), sanitizeLangCode(), and wfDebugLog().

◆ getMain()

static RequestContext::getMain ( )
static

Static methods.

Get the RequestContext object associated with the main request

Returns
RequestContext
Examples
/src/tests/phpunit/MediaWikiTestCase.php.

Definition at line 468 of file RequestContext.php.

References $instance.

Referenced by UserBlockedError\__construct(), PermissionsError\__construct(), MediaWiki\__construct(), MediaWiki\Session\PHPSessionHandler\__construct(), Pingback\__construct(), LogFormatter\__construct(), MediaWiki\Session\SessionBackend\__construct(), ApiMain\__construct(), Installer\__construct(), StubUserLang\_newObject(), BotPasswordTest\addDBData(), MediaWiki\Session\BotPasswordSessionProviderTest\addDBDataOnce(), Linker\buildRollbackLink(), ChangeTags\buildTagFilterSelector(), Preprocessor\cacheGetTree(), Preprocessor\cacheSetTree(), SpecialPageFactory\capturePath(), Title\checkUserBlock(), TitleBlacklistHooks\displayBlacklistOverrideNotice(), ApiTestCase\doApiRequest(), ApiTestCase\doLogin(), Undelete\execute(), SpecialUserLogout\execute(), WrapOldPasswords\execute(), RebuildFileCache\execute(), UpdateMediaWiki\execute(), DeferredUpdates\execute(), LoginSignupSpecialPage\execute(), ChangesList\flag(), CaptchaPreAuthenticationProviderTest\flagSession(), FeedUtils\formatDiffRow(), ChangeTags\formatSummaryRow(), Linker\formatTemplates(), Linker\generateRollback(), MediaWiki\Auth\AuthManager\getAuthenticationRequestsInternal(), User\getBlockFromCookieValue(), ActionTest\getContext(), ContextSource\getContext(), Profiler\getContext(), Action\getContext(), SpecialPage\getContext(), Article\getContext(), Block\getCookieValue(), HTMLFancyCaptchaFieldTest\getForm(), MediaWiki\Session\SessionManager\getGlobalSession(), MWTimestamp\getHumanTimestamp(), Language\getHumanTimestamp(), Block\getIdFromCookieValue(), ApiDocumentationTest\getMain(), getMainAndWarn(), ApiContinuationManagerTest\getManager(), BotPassword\getPassword(), User\getPasswordFactory(), MediaWiki\Session\BotPasswordSessionProviderTest\getProvider(), MWTimestamp\getRelativeTimestamp(), User\getRights(), SpecialPageFactory\getUsablePages(), ApiMain\handleApiBeforeMainException(), EditPage\handleStatus(), importScopedSession(), HTMLButtonField\isBadIE(), WikitextContent\isCountable(), User\loadFromSession(), SpecialPageExecutor\newContext(), User\newFatalPermissionDeniedStatus(), EmailNotification\notifyOnPageChange(), CategoryMembershipChangeJob\notifyUpdatesForRevision(), MessageCache\replace(), UserNotLoggedIn\report(), User\resetOptions(), ChangeTags\restrictedTagError(), AssembleUploadChunksJob\run(), PublishStashedFileJob\run(), SpecialBotPasswords\save(), MediaWiki\Auth\AuthManager\setDefaultUserOptions(), TestUser\setPasswordForUser(), EditPage\setPostEditCookie(), MediaWiki\Session\TestBagOStuff\setRawSession(), LoginSignupSpecialPage\setSessionUserForCurrentRequest(), UploadFromUrlTestSuite\setUp(), LogFormatterTest\setUp(), WebInstaller\setupLanguage(), MediaWikiTestCase\setUserLang(), SimpleCaptcha\shouldCheck(), ChangesList\showCharacterDifference(), LogEventsList\showLogExtract(), MediaWiki\Auth\AuthManager\singleton(), MediaWiki\Auth\ConfirmLinkSecondaryAuthenticationProviderTest\testBeginLinkAttempt(), ApiLoginTest\testBotPassword(), MediaWiki\Session\SessionManagerTest\testConstructor(), ApiDocumentationTest\testDocumentationExists(), HTMLRestrictionsFieldTest\testForm(), ImageListPagerTest\testFormatValuesThrowException(), ActionTest\testGetActionName_whenCanNotUseWikiPage_defaultsToView(), CaptchaPreAuthenticationProviderTest\testGetAuthenticationRequests(), MediaWiki\Session\SessionManagerTest\testGetGlobalSession(), RequestContextTest\testImportScopedSession(), BotPasswordTest\testLogin(), MediaWiki\Session\SessionBackendTest\testResetIdOfGlobalSession(), BotPasswordTest\testSave(), MediaWiki\Auth\AuthManagerTest\testSetDefaultUserOptions(), MediaWiki\Auth\AuthManagerTest\testSingleton(), HTMLReCaptchaNoCaptchaFieldTest\testSubmit(), HTMLSubmittedValueFieldTest\testSubmit(), MediaWiki\Session\SessionBackendTest\testTakeOverGlobalSession(), MediaWiki\Auth\TemporaryPasswordPrimaryAuthenticationProviderTest\testTestUserCanAuthenticate(), MediaWikiTest\testTryNormaliseRedirect(), MediaWiki\Session\SessionBackendTest\testUnpersistOfGlobalSession(), TitleBlacklistPreAuthenticationProvider\testUserForCreation(), WikiPage\triggerOpportunisticLinksUpdate(), EmailNotification\updateWatchlistTimestamp(), MWExceptionRenderer\useOutputPage(), wfInstallerMain(), and wfStreamThumb().

◆ getMainAndWarn()

static RequestContext::getMainAndWarn (   $func = __METHOD__)
static

Get the RequestContext object associated with the main request and gives a warning to the log, to find places, where a context maybe is missing.

Parameters
string$func
Returns
RequestContext
Since
1.24

Definition at line 484 of file RequestContext.php.

References getMain(), and wfDebug().

Referenced by ImageGalleryBase\factory().

◆ getOutput()

RequestContext::getOutput ( )

Get the OutputPage object.

Returns
OutputPage

Implements IContextSource.

Definition at line 268 of file RequestContext.php.

References $output, and output().

◆ getRequest()

RequestContext::getRequest ( )

Get the WebRequest object.

Returns
WebRequest

Implements IContextSource.

Definition at line 122 of file RequestContext.php.

References $request, $wgCommandLineMode, global, and request.

Referenced by exportSession(), getLanguage(), getSkin(), and getUser().

◆ getSkin()

RequestContext::getSkin ( )

◆ getStats()

RequestContext::getStats ( )

Get the Stats object.

Deprecated:
since 1.27 use a StatsdDataFactory from MediaWikiServices (preferably injected)
Returns
StatsdDataFactory

Implements IContextSource.

Definition at line 143 of file RequestContext.php.

◆ getTiming()

RequestContext::getTiming ( )

Get the timing object.

Returns
Timing

Implements IContextSource.

Definition at line 152 of file RequestContext.php.

References $timing.

◆ getTitle()

RequestContext::getTitle ( )

Get the Title object.

Returns
Title|null

Implements IContextSource.

Definition at line 177 of file RequestContext.php.

References $title, $wgTitle, global, title, wfDebugLog(), and wfGetAllCallers().

Referenced by canUseWikiPage(), and getWikiPage().

◆ getUser()

RequestContext::getUser ( )

Get the User object.

Returns
User

Implements IContextSource.

Definition at line 290 of file RequestContext.php.

References $user, getRequest(), User\newFromSession(), and user.

Referenced by exportSession(), getLanguage(), and getSkin().

◆ getWikiPage()

RequestContext::getWikiPage ( )

Get the WikiPage object.

May throw an exception if there's no Title object set or the Title object belongs to a special namespace that doesn't have WikiPage, so use first canUseWikiPage() to check whether this method can be called safely.

Since
1.19
Exceptions
MWException
Returns
WikiPage

Implements IContextSource.

Definition at line 244 of file RequestContext.php.

References $title, $wikipage, WikiPage\factory(), and getTitle().

◆ hasTitle()

RequestContext::hasTitle ( )

Check, if a Title object is set.

Since
1.25
Returns
bool

Definition at line 196 of file RequestContext.php.

References title.

Referenced by setWikiPage().

◆ importScopedSession()

static RequestContext::importScopedSession ( array  $params)
static

Import an client IP address, HTTP headers, user ID, and session ID.

This sets the current session, $wgUser, and $wgRequest from $params. Once the return value falls out of scope, the old context is restored. This method should only be called in contexts where there is no session ID or end user receiving the response (CLI or HTTP job runners). This is partly enforced, and is done so to avoid leaking cookies if certain error conditions arise.

This is useful when background scripts inherit context when acting on behalf of a user. In general the 'sessionId' parameter should be set to an empty string unless session importing is truly needed. This feature is somewhat deprecated.

Note
suhosin.session.encrypt may interfere with this method.
Parameters
array$paramsResult of RequestContext::exportSession()
Returns
ScopedCallback
Exceptions
MWException
Since
1.21

Definition at line 540 of file RequestContext.php.

References $context, $name, $params, $request, $user, $value, $wgRequest, $wgUser, array(), as, User\getId(), getMain(), ContextSource\getRequest(), ContextSource\getUser(), global, IP\isValid(), User\load(), User\newFromId(), User\newFromName(), WebRequest\setIP(), MediaWiki\Session\SessionManager\singleton(), and use.

Referenced by AssembleUploadChunksJob\run(), PublishStashedFileJob\run(), and RequestContextTest\testImportScopedSession().

◆ msg()

RequestContext::msg ( )

Helpful methods.

Get a Message object with context set Parameters are the same as wfMessage()

Parameters
mixed...
Returns
Message

Implements IContextSource.

Definition at line 455 of file RequestContext.php.

References $args.

◆ newExtraneousContext()

static RequestContext::newExtraneousContext ( Title  $title,
  $request = [] 
)
static

Create a new extraneous context.

The context is filled with information external to the current session.

  • Title is specified by argument
  • Request is a FauxRequest, or a FauxRequest can be specified by argument
  • User is an anonymous user, for separation IPv4 localhost is used
  • Language will be based on the anonymous user and request, may be content language or a uselang param in the fauxrequest data may change the lang
  • Skin will be based on the anonymous user, should be the wiki's default skin
Parameters
Title$titleTitle to use for the extraneous request
WebRequest | array$requestA WebRequest or data to use for a FauxRequest
Returns
RequestContext

Definition at line 638 of file RequestContext.php.

References $context, $request, $title, and User\newFromName().

Referenced by LogPage\addEntry(), ManualLogEntry\getRecentChange(), MovePage\moveToInternal(), SpecialChangeContentModel\onSubmit(), LocalFile\recordUpload2(), and RecentChangeTest\setUp().

◆ resetMain()

static RequestContext::resetMain ( )
static

◆ sanitizeLangCode()

static RequestContext::sanitizeLangCode (   $code)
static

Accepts a language code and ensures it's sane.

Outputs a cleaned up language code and replaces with $wgLanguageCode if not sane.

Parameters
string$codeLanguage code
Returns
string

Definition at line 304 of file RequestContext.php.

References $code, $wgLanguageCode, global, Language\isValidCode(), and wfDebug().

Referenced by ApiMain\__construct(), getLanguage(), DerivativeContext\setLanguage(), and setLanguage().

◆ setConfig()

RequestContext::setConfig ( Config  $c)

Set the Config object.

Parameters
Config$c

Implements MutableContext.

Definition at line 89 of file RequestContext.php.

◆ setLanguage()

RequestContext::setLanguage (   $l)

Set the Language object.

Parameters
Language | string$lLanguage instance or language code
Exceptions
MWException
Since
1.19

Implements MutableContext.

Definition at line 326 of file RequestContext.php.

References Language\factory(), and sanitizeLangCode().

◆ setOutput()

RequestContext::setOutput ( OutputPage  $o)
Parameters
OutputPage$o

Implements MutableContext.

Definition at line 259 of file RequestContext.php.

References output().

◆ setRequest()

RequestContext::setRequest ( WebRequest  $r)

Set the WebRequest object.

Parameters
WebRequest$r

Implements MutableContext.

Definition at line 113 of file RequestContext.php.

References request.

Referenced by ApiEditPage\execute().

◆ setSkin()

RequestContext::setSkin ( Skin  $s)

Set the Skin object.

Parameters
Skin$s

Implements MutableContext.

Definition at line 393 of file RequestContext.php.

References $s, ContextSource\setContext(), and skin().

◆ setTitle()

RequestContext::setTitle ( Title  $title = null)

Set the Title object.

Parameters
Title | null$title

Implements MutableContext.

Definition at line 166 of file RequestContext.php.

References $title, and title.

Referenced by PreferencesTest\__construct(), and setWikiPage().

◆ setUser()

RequestContext::setUser ( User  $u)

Set the User object.

Parameters
User$u

Implements MutableContext.

Definition at line 281 of file RequestContext.php.

References user.

Referenced by ApiParamInfo\execute().

◆ setWikiPage()

RequestContext::setWikiPage ( WikiPage  $p)

Set the WikiPage object.

Since
1.19
Parameters
WikiPage$p

Implements MutableContext.

Definition at line 225 of file RequestContext.php.

References WikiPage\getTitle(), hasTitle(), and setTitle().

Member Data Documentation

◆ $config

Config RequestContext::$config
private

Definition at line 77 of file RequestContext.php.

Referenced by getConfig().

◆ $instance

RequestContext RequestContext::$instance = null
staticprivate

Definition at line 82 of file RequestContext.php.

Referenced by getMain().

◆ $lang

Language RequestContext::$lang
private

Definition at line 62 of file RequestContext.php.

Referenced by getLanguage().

◆ $output

OutputPage RequestContext::$output
private

Definition at line 52 of file RequestContext.php.

Referenced by getOutput().

◆ $request

WebRequest RequestContext::$request
private

◆ $skin

Skin RequestContext::$skin
private

Definition at line 67 of file RequestContext.php.

Referenced by getSkin().

◆ $timing

Timing RequestContext::$timing
private

Definition at line 72 of file RequestContext.php.

Referenced by getTiming().

◆ $title

Title RequestContext::$title
private

◆ $user

User RequestContext::$user
private

◆ $wikipage

WikiPage RequestContext::$wikipage
private

Definition at line 47 of file RequestContext.php.

Referenced by getWikiPage().


The documentation for this class was generated from the following file: