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=a3b7296fec07015ee29853fb74be5a27f6775f40;hpb=7621b57d958d0753236221227cbfb519d7faf192;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specialpage/SpecialPageFactory.php b/includes/specialpage/SpecialPageFactory.php index a3b7296fec..94900d46de 100644 --- a/includes/specialpage/SpecialPageFactory.php +++ b/includes/specialpage/SpecialPageFactory.php @@ -24,17 +24,16 @@ namespace MediaWiki\Special; -use Config; use Hooks; use IContextSource; use Language; +use MediaWiki\Config\ServiceOptions; use MediaWiki\Linker\LinkRenderer; use Profiler; use RequestContext; use SpecialPage; use Title; use User; -use Wikimedia\Assert\Assert; /** * Factory for handling the special page list and generating SpecialPage objects. @@ -215,7 +214,7 @@ class SpecialPageFactory { /** @var array */ private $aliases; - /** @var Config */ + /** @var ServiceOptions */ private $options; /** @var Language */ @@ -233,18 +232,17 @@ class SpecialPageFactory { 'EmailAuthentication', 'EnableEmail', 'EnableJavaScriptTest', + 'EnableSpecialMute', 'PageLanguageUseDB', 'SpecialPages', ]; /** - * @param array $options + * @param ServiceOptions $options * @param Language $contLang */ - public function __construct( array $options, Language $contLang ) { - Assert::parameter( count( $options ) === count( self::$constructorOptions ) && - !array_diff( self::$constructorOptions, array_keys( $options ) ), - '$options', 'Wrong set of options present' ); + public function __construct( ServiceOptions $options, Language $contLang ) { + $options->assertRequiredOptions( self::$constructorOptions ); $this->options = $options; $this->contLang = $contLang; } @@ -268,32 +266,37 @@ class SpecialPageFactory { if ( !is_array( $this->list ) ) { $this->list = self::$coreList; - if ( !$this->options['DisableInternalSearch'] ) { + if ( !$this->options->get( 'DisableInternalSearch' ) ) { $this->list['Search'] = \SpecialSearch::class; } - if ( $this->options['EmailAuthentication'] ) { + if ( $this->options->get( 'EmailAuthentication' ) ) { $this->list['Confirmemail'] = \EmailConfirmation::class; $this->list['Invalidateemail'] = \EmailInvalidation::class; } - if ( $this->options['EnableEmail'] ) { + if ( $this->options->get( 'EnableEmail' ) ) { $this->list['ChangeEmail'] = \SpecialChangeEmail::class; } - if ( $this->options['EnableJavaScriptTest'] ) { + if ( $this->options->get( 'EnableJavaScriptTest' ) ) { $this->list['JavaScriptTest'] = \SpecialJavaScriptTest::class; } - if ( $this->options['PageLanguageUseDB'] ) { + if ( $this->options->get( 'EnableSpecialMute' ) ) { + $this->list['Mute'] = \SpecialMute::class; + } + + if ( $this->options->get( 'PageLanguageUseDB' ) ) { $this->list['PageLanguage'] = \SpecialPageLanguage::class; } - if ( $this->options['ContentHandlerUseDB'] ) { + + if ( $this->options->get( 'ContentHandlerUseDB' ) ) { $this->list['ChangeContentModel'] = \SpecialChangeContentModel::class; } // Add extension special pages - $this->list = array_merge( $this->list, $this->options['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.