MediaWiki  master
DerivativeContext.php
Go to the documentation of this file.
1 <?php
22 
34  private $request;
35 
39  private $title;
40 
44  private $wikipage;
45 
49  private $output;
50 
54  private $user;
55 
59  private $lang;
60 
64  private $skin;
65 
69  private $config;
70 
74  private $timing;
75 
79  public function __construct( IContextSource $context ) {
80  $this->setContext( $context );
81  }
82 
86  public function setConfig( Config $config ) {
87  $this->config = $config;
88  }
89 
93  public function getConfig() {
94  return $this->config ?: $this->getContext()->getConfig();
95  }
96 
102  public function getStats() {
103  return MediaWikiServices::getInstance()->getStatsdDataFactory();
104  }
105 
109  public function getTiming() {
110  return $this->timing ?: $this->getContext()->getTiming();
111  }
112 
116  public function setRequest( WebRequest $request ) {
117  $this->request = $request;
118  }
119 
123  public function getRequest() {
124  return $this->request ?: $this->getContext()->getRequest();
125  }
126 
130  public function setTitle( Title $title ) {
131  $this->title = $title;
132  }
133 
137  public function getTitle() {
138  return $this->title ?: $this->getContext()->getTitle();
139  }
140 
149  public function canUseWikiPage() {
150  if ( $this->wikipage !== null ) {
151  return true;
152  }
153 
154  if ( $this->title !== null ) {
155  return $this->title->canExist();
156  }
157 
158  return $this->getContext()->canUseWikiPage();
159  }
160 
165  public function setWikiPage( WikiPage $wikiPage ) {
166  $this->wikipage = $wikiPage;
167  }
168 
178  public function getWikiPage() {
179  return $this->wikipage ?: $this->getContext()->getWikiPage();
180  }
181 
185  public function setOutput( OutputPage $output ) {
186  $this->output = $output;
187  }
188 
192  public function getOutput() {
193  return $this->output ?: $this->getContext()->getOutput();
194  }
195 
199  public function setUser( User $user ) {
200  $this->user = $user;
201  }
202 
206  public function getUser() {
207  return $this->user ?: $this->getContext()->getUser();
208  }
209 
215  public function setLanguage( $language ) {
216  if ( $language instanceof Language ) {
217  $this->lang = $language;
218  } elseif ( is_string( $language ) ) {
219  $language = RequestContext::sanitizeLangCode( $language );
220  $obj = MediaWikiServices::getInstance()->getLanguageFactory()->getLanguage( $language );
221  $this->lang = $obj;
222  } else {
223  throw new MWException( __METHOD__ . " was passed an invalid type of data." );
224  }
225  }
226 
231  public function getLanguage() {
232  return $this->lang ?: $this->getContext()->getLanguage();
233  }
234 
238  public function setSkin( Skin $skin ) {
239  $this->skin = clone $skin;
240  $this->skin->setContext( $this );
241  }
242 
246  public function getSkin() {
247  return $this->skin ?: $this->getContext()->getSkin();
248  }
249 
262  public function msg( $key, ...$params ) {
263  // phpcs:ignore MediaWiki.Usage.ExtendClassUsage.FunctionVarUsage
264  return wfMessage( $key, ...$params )->setContext( $this );
265  }
266 }
DerivativeContext\__construct
__construct(IContextSource $context)
Definition: DerivativeContext.php:79
ContextSource\$context
IContextSource $context
Definition: ContextSource.php:33
ContextSource\getContext
getContext()
Get the base IContextSource object.
Definition: ContextSource.php:40
RequestContext\sanitizeLangCode
static sanitizeLangCode( $code)
Accepts a language code and ensures it's sane.
Definition: RequestContext.php:290
DerivativeContext\$config
Config $config
Definition: DerivativeContext.php:69
MediaWiki\MediaWikiServices
MediaWikiServices is the service locator for the application scope of MediaWiki.
Definition: MediaWikiServices.php:134
DerivativeContext\$wikipage
WikiPage $wikipage
Definition: DerivativeContext.php:44
DerivativeContext\setWikiPage
setWikiPage(WikiPage $wikiPage)
Definition: DerivativeContext.php:165
WikiPage
Class representing a MediaWiki article and history.
Definition: WikiPage.php:48
DerivativeContext\setConfig
setConfig(Config $config)
Definition: DerivativeContext.php:86
wfMessage
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
Definition: GlobalFunctions.php:1265
DerivativeContext\setSkin
setSkin(Skin $skin)
Definition: DerivativeContext.php:238
DerivativeContext\getWikiPage
getWikiPage()
Get the WikiPage object.
Definition: DerivativeContext.php:178
DerivativeContext\getStats
getStats()
Definition: DerivativeContext.php:102
DerivativeContext\getUser
getUser()
Definition: DerivativeContext.php:206
DerivativeContext\getOutput
getOutput()
Definition: DerivativeContext.php:192
DerivativeContext\getTitle
getTitle()
Definition: DerivativeContext.php:137
DerivativeContext\$output
OutputPage $output
Definition: DerivativeContext.php:49
DerivativeContext\setRequest
setRequest(WebRequest $request)
Definition: DerivativeContext.php:116
Config
Interface for configuration instances.
Definition: Config.php:28
DerivativeContext
An IContextSource implementation which will inherit context from another source but allow individual ...
Definition: DerivativeContext.php:30
MWException
MediaWiki exception.
Definition: MWException.php:26
DerivativeContext\$title
Title $title
Definition: DerivativeContext.php:39
DerivativeContext\$skin
Skin $skin
Definition: DerivativeContext.php:64
DerivativeContext\getTiming
getTiming()
Definition: DerivativeContext.php:109
Timing
An interface to help developers measure the performance of their applications.
Definition: Timing.php:45
ContextSource
The simplest way of implementing IContextSource is to hold a RequestContext as a member variable and ...
Definition: ContextSource.php:29
DerivativeContext\setUser
setUser(User $user)
Definition: DerivativeContext.php:199
DerivativeContext\msg
msg( $key,... $params)
Get a message using the current context.
Definition: DerivativeContext.php:262
DerivativeContext\getRequest
getRequest()
Definition: DerivativeContext.php:123
ContextSource\setContext
setContext(IContextSource $context)
Definition: ContextSource.php:55
MutableContext
Definition: MutableContext.php:25
DerivativeContext\setTitle
setTitle(Title $title)
Definition: DerivativeContext.php:130
DerivativeContext\canUseWikiPage
canUseWikiPage()
Check whether a WikiPage object can be get with getWikiPage().
Definition: DerivativeContext.php:149
DerivativeContext\getConfig
getConfig()
Definition: DerivativeContext.php:93
DerivativeContext\getSkin
getSkin()
Definition: DerivativeContext.php:246
DerivativeContext\$timing
Timing $timing
Definition: DerivativeContext.php:74
DerivativeContext\$user
User $user
Definition: DerivativeContext.php:54
IContextSource
Interface for objects which can provide a MediaWiki context on request.
Definition: IContextSource.php:53
WebRequest
The WebRequest class encapsulates getting at data passed in the URL or via a POSTed form stripping il...
Definition: WebRequest.php:43
Title
Represents a title within MediaWiki.
Definition: Title.php:42
DerivativeContext\setLanguage
setLanguage( $language)
Definition: DerivativeContext.php:215
Skin
The main skin class which provides methods and properties for all other skins.
Definition: Skin.php:38
User
The User object encapsulates all of the user-specific settings (user_id, name, rights,...
Definition: User.php:52
DerivativeContext\setOutput
setOutput(OutputPage $output)
Definition: DerivativeContext.php:185
Language
Internationalisation code See https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation for more...
Definition: Language.php:39
DerivativeContext\getLanguage
getLanguage()
Definition: DerivativeContext.php:231
DerivativeContext\$request
WebRequest $request
Definition: DerivativeContext.php:34
DerivativeContext\$lang
Language $lang
Definition: DerivativeContext.php:59