X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/journal.php?a=blobdiff_plain;f=includes%2Fspecialpage%2FSpecialPageFactory.php;h=94900d46dea689867710836c0bbb00c307c4e31d;hb=ed13d3fa56c2ec3a9e823161afab888937cc26c5;hp=58212dd9d549b41c4cef830f7da8486bdc139db9;hpb=2ce2935c06723749106a0a896ad93b8e22c41185;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specialpage/SpecialPageFactory.php b/includes/specialpage/SpecialPageFactory.php index 58212dd9d5..94900d46de 100644 --- a/includes/specialpage/SpecialPageFactory.php +++ b/includes/specialpage/SpecialPageFactory.php @@ -24,10 +24,10 @@ namespace MediaWiki\Special; -use Config; use Hooks; use IContextSource; use Language; +use MediaWiki\Config\ServiceOptions; use MediaWiki\Linker\LinkRenderer; use Profiler; use RequestContext; @@ -214,18 +214,36 @@ class SpecialPageFactory { /** @var array */ private $aliases; - /** @var Config */ - private $config; + /** @var ServiceOptions */ + private $options; /** @var Language */ private $contLang; /** - * @param Config $config + * TODO Make this a const when HHVM support is dropped (T192166) + * + * @var array + * @since 1.33 + * */ + public static $constructorOptions = [ + 'ContentHandlerUseDB', + 'DisableInternalSearch', + 'EmailAuthentication', + 'EnableEmail', + 'EnableJavaScriptTest', + 'EnableSpecialMute', + 'PageLanguageUseDB', + 'SpecialPages', + ]; + + /** + * @param ServiceOptions $options * @param Language $contLang */ - public function __construct( Config $config, Language $contLang ) { - $this->config = $config; + public function __construct( ServiceOptions $options, Language $contLang ) { + $options->assertRequiredOptions( self::$constructorOptions ); + $this->options = $options; $this->contLang = $contLang; } @@ -248,32 +266,37 @@ class SpecialPageFactory { if ( !is_array( $this->list ) ) { $this->list = self::$coreList; - if ( !$this->config->get( 'DisableInternalSearch' ) ) { + if ( !$this->options->get( 'DisableInternalSearch' ) ) { $this->list['Search'] = \SpecialSearch::class; } - if ( $this->config->get( 'EmailAuthentication' ) ) { + if ( $this->options->get( 'EmailAuthentication' ) ) { $this->list['Confirmemail'] = \EmailConfirmation::class; $this->list['Invalidateemail'] = \EmailInvalidation::class; } - if ( $this->config->get( 'EnableEmail' ) ) { + if ( $this->options->get( 'EnableEmail' ) ) { $this->list['ChangeEmail'] = \SpecialChangeEmail::class; } - if ( $this->config->get( 'EnableJavaScriptTest' ) ) { + if ( $this->options->get( 'EnableJavaScriptTest' ) ) { $this->list['JavaScriptTest'] = \SpecialJavaScriptTest::class; } - if ( $this->config->get( 'PageLanguageUseDB' ) ) { + if ( $this->options->get( 'EnableSpecialMute' ) ) { + $this->list['Mute'] = \SpecialMute::class; + } + + if ( $this->options->get( 'PageLanguageUseDB' ) ) { $this->list['PageLanguage'] = \SpecialPageLanguage::class; } - if ( $this->config->get( 'ContentHandlerUseDB' ) ) { + + if ( $this->options->get( 'ContentHandlerUseDB' ) ) { $this->list['ChangeContentModel'] = \SpecialChangeContentModel::class; } // Add extension special pages - $this->list = array_merge( $this->list, $this->config->get( 'SpecialPages' ) ); + $this->list = array_merge( $this->list, $this->options->get( 'SpecialPages' ) ); // This hook can be used to disable unwanted core special pages // or conditionally register special pages.