Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 74
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3use MediaWiki\Config\HashConfig;
4use MediaWiki\Config\ServiceOptions;
5use MediaWiki\Context\RequestContext;
6use MediaWiki\Extension\CommunityConfiguration\Access\MediaWikiConfigReader;
7use MediaWiki\Extension\CommunityConfiguration\CommunityConfigurationServices;
8use MediaWiki\Extension\CommunityConfiguration\EditorCapabilities\EditorCapabilityFactory;
9use MediaWiki\Extension\CommunityConfiguration\EditorCapabilities\MessagesProcessor;
10use MediaWiki\Extension\CommunityConfiguration\Hooks\HookRunner;
11use MediaWiki\Extension\CommunityConfiguration\Provider\ConfigurationProviderFactory;
12use MediaWiki\Extension\CommunityConfiguration\Schema\SchemaConverterFactory;
13use MediaWiki\Extension\CommunityConfiguration\Schema\SchemaMigrator;
14use MediaWiki\Extension\CommunityConfiguration\Store\StoreFactory;
15use MediaWiki\Extension\CommunityConfiguration\Store\WikiPage\Writer;
16use MediaWiki\Extension\CommunityConfiguration\Utils;
17use MediaWiki\Extension\CommunityConfiguration\Validation\ValidatorFactory;
18use MediaWiki\Logger\LoggerFactory;
19use MediaWiki\MediaWikiServices;
20
21return [
22    'CommunityConfiguration.MessagesProcessor' => static function ( MediaWikiServices $services ) {
23        return new MessagesProcessor( RequestContext::getMain() );
24    },
25    'CommunityConfiguration.EditorCapabilityFactory' => static function ( MediaWikiServices $services ) {
26        return new EditorCapabilityFactory(
27            new ServiceOptions(
28                EditorCapabilityFactory::CONSTRUCTOR_OPTIONS,
29                new HashConfig( [
30                    'CommunityConfigurationEditorCapabilities' => Utils::getMergedAttribute(
31                        $services->getMainConfig(),
32                        'CommunityConfigurationEditorCapabilities'
33                    )
34                ] )
35            ),
36            $services->getObjectFactory()
37        );
38    },
39    'CommunityConfiguration.HookRunner' => static function ( MediaWikiServices $services ) {
40        return new HookRunner(
41            $services->getHookContainer()
42        );
43    },
44    'CommunityConfiguration.ProviderFactory' => static function ( MediaWikiServices $services ) {
45        $ccServices = CommunityConfigurationServices::wrap( $services );
46        return new ConfigurationProviderFactory(
47            $ccServices->getStoreFactory(),
48            $ccServices->getValidatorFactory(),
49            $services->getMainConfig(),
50            $ccServices->getHookRunner(),
51            $services,
52        );
53    },
54    'CommunityConfiguration.MediaWikiConfigReader' => static function ( MediaWikiServices $services ) {
55        $ccServices = CommunityConfigurationServices::wrap( $services );
56        $reader = new MediaWikiConfigReader(
57            $services->getLocalServerObjectCache(),
58            $ccServices->getConfigurationProviderFactory(),
59            $services->getMainConfig()
60        );
61        $reader->setLogger( LoggerFactory::getInstance( 'CommunityConfiguration' ) );
62        return $reader;
63    },
64    'CommunityConfiguration.ValidatorFactory' => static function ( MediaWikiServices $services ) {
65        return new ValidatorFactory(
66            new ServiceOptions( ValidatorFactory::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ),
67            $services->getObjectFactory()
68        );
69    },
70    'CommunityConfiguration.SchemaConverterFactory' => static function ( MediaWikiServices $services ) {
71        return new SchemaConverterFactory(
72            $services->getObjectFactory()
73        );
74    },
75    'CommunityConfiguration.SchemaMigrator' => static function ( MediaWikiServices $services ) {
76        $ccServices = CommunityConfigurationServices::wrap( $services );
77        return new SchemaMigrator(
78            $ccServices->getSchemaConverterFactory()
79        );
80    },
81    'CommunityConfiguration.StoreFactory' => static function ( MediaWikiServices $services ) {
82        return new StoreFactory(
83            new ServiceOptions( StoreFactory::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ),
84            $services->getObjectFactory()
85        );
86    },
87    'CommunityConfiguration.WikiPageStore.Writer' => static function ( MediaWikiServices $services ) {
88        return new Writer(
89            $services->getWikiPageFactory(),
90            $services->getUserFactory(),
91            $services->getHookContainer()
92        );
93    }
94];