Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
MediaWikiServicesHookHandler
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
2
0.00% covered (danger)
0.00%
0 / 1
 onMediaWikiServices
0.00% covered (danger)
0.00%
0 / 24
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace GlobalPreferences\HookHandler;
4
5use GlobalPreferences\GlobalPreferencesFactory;
6use GlobalPreferences\GlobalPreferencesServices;
7use MediaWiki\Config\ServiceOptions;
8use MediaWiki\Hook\MediaWikiServicesHook;
9use MediaWiki\Logger\LoggerFactory;
10use MediaWiki\MediaWikiServices;
11
12class MediaWikiServicesHookHandler implements MediaWikiServicesHook {
13
14    /**
15     * Replace the PreferencesFactory service with the GlobalPreferencesFactory.
16     * @link https://www.mediawiki.org/wiki/Manual:Hooks/MediaWikiServices
17     * @param MediaWikiServices $services The services object to use.
18     */
19    public function onMediaWikiServices( $services ) {
20        $services->redefineService( 'PreferencesFactory', static function ( MediaWikiServices $services ) {
21            $mainConfig = $services->getMainConfig();
22            $config = new ServiceOptions( GlobalPreferencesFactory::CONSTRUCTOR_OPTIONS,
23                $mainConfig
24            );
25            $hookRunner = GlobalPreferencesServices::wrap( $services )
26                ->getGlobalPreferencesHookRunner();
27            $factory = new GlobalPreferencesFactory(
28                $config,
29                $services->getContentLanguage(),
30                $services->getAuthManager(),
31                $services->getLinkRendererFactory()->create(),
32                $services->getNamespaceInfo(),
33                $services->getPermissionManager(),
34                $services->getLanguageConverterFactory()->getLanguageConverter(),
35                $services->getLanguageNameUtils(),
36                $services->getHookContainer(),
37                $services->getUserOptionsLookup(),
38                $hookRunner
39            );
40            $factory->setLogger( LoggerFactory::getInstance( 'preferences' ) );
41            $factory->setAutoGlobals( $mainConfig->get( 'GlobalPreferencesAutoPrefs' ) );
42
43            return $factory;
44        } );
45    }
46
47}