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