* @file
*/
+use Liuggio\StatsdClient\Factory\StatsdDataFactory;
use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
+use Wikimedia\ScopedCallback;
/**
* Group all the pieces relevant to the context of a request into one instance
*/
private $skin;
- /**
- * @var \Liuggio\StatsdClient\Factory\StatsdDataFactory
- */
- private $stats;
-
/**
* @var Timing
*/
if ( $this->config === null ) {
// @todo In the future, we could move this to WebStart.php so
// the Config object is ready for when initialization happens
- $this->config = ConfigFactory::getDefaultInstance()->makeConfig( 'main' );
+ $this->config = MediaWikiServices::getInstance()->getMainConfig();
}
return $this->config;
global $wgCommandLineMode;
// create the WebRequest object on the fly
if ( $wgCommandLineMode ) {
- $this->request = new FauxRequest( array() );
+ $this->request = new FauxRequest( [] );
} else {
$this->request = new WebRequest();
}
/**
* Get the Stats object
*
- * @return BufferingStatsdDataFactory
+ * @deprecated since 1.27 use a StatsdDataFactory from MediaWikiServices (preferably injected)
+ *
+ * @return StatsdDataFactory
*/
public function getStats() {
- if ( $this->stats === null ) {
- $prefix = rtrim( $this->getConfig()->get( 'StatsdMetricPrefix' ), '.' );
- $this->stats = new BufferingStatsdDataFactory( $prefix );
- }
- return $this->stats;
+ return MediaWikiServices::getInstance()->getStatsdDataFactory();
}
/**
*/
public function getTiming() {
if ( $this->timing === null ) {
- $this->timing = new Timing( array(
+ $this->timing = new Timing( [
'logger' => LoggerFactory::getInstance( 'Timing' )
- ) );
+ ] );
}
return $this->timing;
}
/**
* Set the Title object
*
- * @param Title $title
+ * @param Title|null $title
*/
- public function setTitle( Title $title ) {
+ public function setTitle( Title $title = null ) {
$this->title = $title;
// Erase the WikiPage so a new one with the new title gets created.
$this->wikipage = null;
}
$code = self::sanitizeLangCode( $code );
- Hooks::run( 'UserGetLanguageObject', array( $user, &$code, $this ) );
+ Hooks::run( 'UserGetLanguageObject', [ $user, &$code, $this ] );
if ( $code === $this->getConfig()->get( 'LanguageCode' ) ) {
$this->lang = $wgContLang;
public function getSkin() {
if ( $this->skin === null ) {
$skin = null;
- Hooks::run( 'RequestContextCreateSkin', array( $this, &$skin ) );
+ Hooks::run( 'RequestContextCreateSkin', [ $this, &$skin ] );
$factory = SkinFactory::getDefaultInstance();
// If the hook worked try to set a skin from it
* Resets singleton returned by getMain(). Should be called only from unit tests.
*/
public static function resetMain() {
- if ( !defined( 'MW_PHPUNIT_TEST' ) ) {
+ if ( !( defined( 'MW_PHPUNIT_TEST' ) || defined( 'MW_PARSER_TEST' ) ) ) {
throw new MWException( __METHOD__ . '() should be called only from unit tests!' );
}
self::$instance = null;
*/
public function exportSession() {
$session = MediaWiki\Session\SessionManager::getGlobalSession();
- return array(
+ return [
'ip' => $this->getRequest()->getIP(),
'headers' => $this->getRequest()->getAllHeaders(),
'sessionId' => $session->isPersistent() ? $session->getId() : '',
'userId' => $this->getUser()->getId()
- );
+ ];
}
/**
if ( MediaWiki\Session\PHPSessionHandler::isEnabled() ) {
session_write_close(); // persist
session_id( '' ); // detach
- $_SESSION = array(); // clear in-memory array
+ $_SESSION = []; // clear in-memory array
}
// Get new session, if applicable
// Remove any user IP or agent information, and attach the request
// with the new session.
- $context->setRequest( new FauxRequest( array(), false, $session ) );
+ $context->setRequest( new FauxRequest( [], false, $session ) );
$wgRequest = $context->getRequest(); // b/c
// Now that all private information is detached from the user, it should
session_id( $session->getId() );
MediaWiki\quietCall( 'session_start' );
}
- $request = new FauxRequest( array(), false, $session );
+ $request = new FauxRequest( [], false, $session );
$request->setIP( $params['ip'] );
foreach ( $params['headers'] as $name => $value ) {
$request->setHeader( $name, $value );
* @param WebRequest|array $request A WebRequest or data to use for a FauxRequest
* @return RequestContext
*/
- public static function newExtraneousContext( Title $title, $request = array() ) {
+ public static function newExtraneousContext( Title $title, $request = [] ) {
$context = new self;
$context->setTitle( $title );
if ( $request instanceof WebRequest ) {