Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3declare( strict_types=1 );
4
5use ContentTranslation\AbuseFilterChecker;
6use ContentTranslation\LoadBalancer;
7use ContentTranslation\Manager\TranslationCorporaManager;
8use ContentTranslation\ParsoidClientFactory;
9use ContentTranslation\PreferenceHelper;
10use ContentTranslation\Service\EditedSectionFinder;
11use ContentTranslation\Service\SandboxTitleMaker;
12use ContentTranslation\Service\SectionPositionCalculator;
13use ContentTranslation\Service\SectionTitleFetcher;
14use ContentTranslation\Service\TranslationSplitter;
15use ContentTranslation\Service\TranslationTargetUrlCreator;
16use ContentTranslation\Service\TranslatorService;
17use ContentTranslation\Service\UserService;
18use ContentTranslation\Service\WikidataIdFetcher;
19use ContentTranslation\Store\RecentSignificantEditStore;
20use ContentTranslation\Store\SectionTranslationStore;
21use ContentTranslation\Store\TranslationCorporaStore;
22use ContentTranslation\Store\TranslationStore;
23use ContentTranslation\Validator\TranslationUnitValidator;
24use MediaWiki\Config\ServiceOptions;
25use MediaWiki\MediaWikiServices;
26use MediaWiki\Registration\ExtensionRegistry;
27use MediaWiki\WikiMap\WikiMap;
28use Wikimedia\Services\NoSuchServiceException;
29
30// PHP unit does not understand code coverage for this file
31// as the @covers annotation cannot cover a specific file
32// This is fully tested in ServiceWiringTest.php
33// @codeCoverageIgnoreStart
34
35/** @phpcs-require-sorted-array */
36return [
37    'ContentTranslation.AbuseFilterChecker' =>
38        static function ( MediaWikiServices $services ): AbuseFilterChecker {
39            try {
40                $variableGeneratorFactory = $services->getService( 'AbuseFilterVariableGeneratorFactory' );
41                $consequencesLookup = $services->getService( 'AbuseFilterConsequencesLookup' );
42                $filterLookup = $services->getService( 'AbuseFilterFilterLookup' );
43                $filterRunnerFactory = $services->getService( 'AbuseFilterFilterRunnerFactory' );
44            } catch ( NoSuchServiceException $exception ) {
45                $variableGeneratorFactory = null;
46                $consequencesLookup = null;
47                $filterLookup = null;
48                $filterRunnerFactory = null;
49            }
50            return new AbuseFilterChecker(
51                ExtensionRegistry::getInstance()->isLoaded( 'Abuse Filter' ),
52                $services->getWikiPageFactory(),
53                $variableGeneratorFactory,
54                $consequencesLookup,
55                $filterLookup,
56                $filterRunnerFactory
57            );
58        },
59    'ContentTranslation.EditedSectionFinder' =>
60        static function (): EditedSectionFinder {
61            return new EditedSectionFinder();
62        },
63    'ContentTranslation.LoadBalancer' =>
64        static function ( MediaWikiServices $services ): LoadBalancer {
65            return new LoadBalancer(
66                $services->getDBLoadBalancerFactory(),
67                new ServiceOptions( LoadBalancer::CONSTRUCTOR_OPTIONS, $services->getMainConfig() )
68            );
69        },
70    'ContentTranslation.ParsoidClientFactory' => static function (
71            MediaWikiServices $services
72        ): ParsoidClientFactory {
73            return new ParsoidClientFactory(
74                $services->getPageRestHelperFactory()
75            );
76    },
77    'ContentTranslation.PreferenceHelper' =>
78        static function ( MediaWikiServices $services ): PreferenceHelper {
79            return new PreferenceHelper(
80                $services->getPreferencesFactory(),
81                $services->getUserOptionsLookup(),
82                new ServiceOptions( PreferenceHelper::CONSTRUCTOR_OPTIONS, $services->getMainConfig() ),
83                ExtensionRegistry::getInstance()->isLoaded( 'BetaFeatures' ),
84                ExtensionRegistry::getInstance()->isLoaded( 'GlobalPreferences' )
85            );
86        },
87    'ContentTranslation.RecentSignificantEditStore' =>
88        static function ( MediaWikiServices $services ): RecentSignificantEditStore {
89            global $wgConf;
90            [ $wikiFamily ] = $wgConf->siteFromDB( WikiMap::getCurrentWikiId() );
91            return new RecentSignificantEditStore(
92                $services->getService( 'ContentTranslation.LoadBalancer' ),
93                $wikiFamily
94            );
95        },
96    'ContentTranslation.SandboxTitleMaker' =>
97        static function ( MediaWikiServices $services ): SandboxTitleMaker {
98            $isSandboxLinkLoaded = ExtensionRegistry::getInstance()->isLoaded( 'SandboxLink' );
99            return new SandboxTitleMaker( $services->getTitleFactory(), $isSandboxLinkLoaded );
100        },
101    'ContentTranslation.SectionPositionCalculator' =>
102        static function ( MediaWikiServices $services ): SectionPositionCalculator {
103            return new SectionPositionCalculator(
104                $services->getHttpRequestFactory(),
105                $services->getService( 'ContentTranslation.SectionTitleFetcher' )
106            );
107        },
108    'ContentTranslation.SectionTitleFetcher' =>
109        static function ( MediaWikiServices $services ): SectionTitleFetcher {
110            return new SectionTitleFetcher( $services->getHttpRequestFactory() );
111        },
112    'ContentTranslation.SectionTranslationStore' =>
113        static function ( MediaWikiServices $services ): SectionTranslationStore {
114            return new SectionTranslationStore(
115                $services->getService( 'ContentTranslation.LoadBalancer' )
116            );
117        },
118    'ContentTranslation.TranslationCorporaManager' =>
119        static function ( MediaWikiServices $services ): TranslationCorporaManager {
120            return new TranslationCorporaManager(
121                $services->getService( 'ContentTranslation.TranslationCorporaStore' )
122            );
123        },
124    'ContentTranslation.TranslationCorporaStore' =>
125        static function ( MediaWikiServices $services ): TranslationCorporaStore {
126            return new TranslationCorporaStore(
127                $services->getService( 'ContentTranslation.LoadBalancer' ),
128                $services->getDBLoadBalancerFactory()
129            );
130        },
131    'ContentTranslation.TranslationSplitter' =>
132        static function ( MediaWikiServices $services ): TranslationSplitter {
133            return new TranslationSplitter(
134                $services->getService( 'ContentTranslation.TranslationCorporaManager' ),
135                $services->getService( 'ContentTranslation.SectionTitleFetcher' )
136            );
137        },
138    'ContentTranslation.TranslationStore' =>
139        static function ( MediaWikiServices $services ): TranslationStore {
140            return new TranslationStore(
141                $services->getService( 'ContentTranslation.LoadBalancer' ),
142                $services->getService( 'ContentTranslation.UserService' )
143            );
144        },
145    'ContentTranslation.TranslationTargetUrlCreator' =>
146        static function ( MediaWikiServices $services ): TranslationTargetUrlCreator {
147            return new TranslationTargetUrlCreator(
148                $services->getTitleFactory(),
149                new ServiceOptions( TranslationTargetUrlCreator::CONSTRUCTOR_OPTIONS, $services->getMainConfig() )
150            );
151        },
152    'ContentTranslation.TranslationUnitValidator' =>
153        static function ( MediaWikiServices $services ): TranslationUnitValidator {
154            return new TranslationUnitValidator(
155                $services->getService( 'ContentTranslation.AbuseFilterChecker' ),
156                $services->getService( 'ContentTranslation.ParsoidClientFactory' )
157            );
158        },
159    'ContentTranslation.TranslatorService' =>
160        static function ( MediaWikiServices $services ): TranslatorService {
161            return new TranslatorService(
162                $services->getService( 'ContentTranslation.UserService' ),
163                $services->getService( 'ContentTranslation.TranslationStore' )
164            );
165        },
166    'ContentTranslation.UserService' =>
167        static function ( MediaWikiServices $services ): UserService {
168            return new UserService( $services->getCentralIdLookup(), $services->getGenderCache() );
169        },
170    'ContentTranslation.WikidataIdFetcher' =>
171        static function ( MediaWikiServices $services ): WikidataIdFetcher {
172            return new WikidataIdFetcher( $services->getHttpRequestFactory() );
173        }
174];
175
176// @codeCoverageIgnoreEnd