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 = Language::factory( $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 }
setContext(IContextSource $context)
The simplest way of implementing IContextSource is to hold a RequestContext as a member variable and ...
__construct(IContextSource $context)
An IContextSource implementation which will inherit context from another source but allow individual ...
getWikiPage()
Get the WikiPage object.
IContextSource $context
msg( $key,... $params)
Get a message using the current context.
setRequest(WebRequest $request)
setConfig(Config $config)
The User object encapsulates all of the user-specific settings (user_id, name, rights, email address, options, last login time).
Definition: User.php:51
setWikiPage(WikiPage $wikiPage)
Interface for configuration instances.
Definition: Config.php:28
setTitle(Title $title)
getContext()
Get the base IContextSource object.
static factory( $code)
Get a cached or new language object for a given language code.
Definition: Language.php:212
canUseWikiPage()
Check whether a WikiPage object can be get with getWikiPage().
static sanitizeLangCode( $code)
Accepts a language code and ensures it&#39;s sane.
wfMessage( $key,... $params)
This is the function for getting translated interface messages.
setOutput(OutputPage $output)