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