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