Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
45.74% covered (danger)
45.74%
43 / 94
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2declare( strict_types = 1 );
3
4use EntitySchema\DataAccess\DescriptionLookup;
5use EntitySchema\DataAccess\FullViewSchemaDataLookup;
6use EntitySchema\DataAccess\LabelLookup;
7use EntitySchema\DataAccess\MediaWikiPageUpdaterFactory;
8use EntitySchema\DataAccess\SchemaDataResolvingLabelLookup;
9use EntitySchema\DataAccess\SqlIdGenerator;
10use EntitySchema\DataAccess\WatchlistUpdater;
11use EntitySchema\Domain\Storage\IdGenerator;
12use EntitySchema\MediaWiki\EntitySchemaServices;
13use EntitySchema\MediaWiki\HookRunner;
14use EntitySchema\Presentation\AutocommentFormatter;
15use EntitySchema\Wikibase\Search\EntitySchemaSearchHelperFactory;
16use EntitySchema\Wikibase\Validators\EntitySchemaExistsValidator;
17use MediaWiki\MediaWikiServices;
18use Wikibase\Repo\WikibaseRepo;
19
20/** @phpcs-require-sorted-array */
21return [
22    'EntitySchema.AutocommentFormatter' => static function ( MediaWikiServices $services ): AutocommentFormatter {
23        return new AutocommentFormatter();
24    },
25
26    'EntitySchema.DescriptionLookup' => static function ( MediaWikiServices $services ): ?DescriptionLookup {
27        if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
28            return null;
29        }
30        return new DescriptionLookup(
31            EntitySchemaServices::getFullViewSchemaDataLookup( $services ),
32            WikibaseRepo::getLanguageFallbackChainFactory( $services )
33        );
34    },
35
36    'EntitySchema.EntitySchemaExistsValidator' => static function (
37        MediaWikiServices $services
38    ): ?EntitySchemaExistsValidator {
39        if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
40            return null;
41        }
42        return new EntitySchemaExistsValidator( $services->getTitleFactory() );
43    },
44
45    'EntitySchema.EntitySchemaIsRepo' => static function ( MediaWikiServices $services ): bool {
46        return $services->getMainConfig()->get( 'EntitySchemaIsRepo' );
47    },
48
49    'EntitySchema.EntitySchemaSearchHelperFactory' => static function (
50        MediaWikiServices $services
51    ): ?EntitySchemaSearchHelperFactory {
52        if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
53            return null;
54        }
55        return new EntitySchemaSearchHelperFactory(
56            $services->getConfigFactory(),
57            $services->getTitleFactory(),
58            $services->getWikiPageFactory(),
59            WikibaseRepo::getLanguageFallbackChainFactory( $services ),
60            WikibaseRepo::getLocalEntitySource( $services )->getConceptBaseUri(),
61            EntitySchemaServices::getDescriptionLookup( $services ),
62            EntitySchemaServices::getSchemaDataResolvingLabelLookup( $services )
63        );
64    },
65
66    'EntitySchema.FullViewSchemaDataLookup' => static function (
67        MediaWikiServices $services
68    ): FullViewSchemaDataLookup {
69        return new FullViewSchemaDataLookup(
70            $services->getTitleFactory(),
71            $services->getWikiPageFactory()
72        );
73    },
74
75    'EntitySchema.HookRunner' => static function ( MediaWikiServices $services ): HookRunner {
76        return new HookRunner(
77            $services->getHookContainer()
78        );
79    },
80
81    'EntitySchema.IdGenerator' => static function ( MediaWikiServices $services ): ?IdGenerator {
82        if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
83            return null;
84        }
85        return new SqlIdGenerator(
86            $services->getDBLoadBalancer(),
87            'entityschema_id_counter',
88            $services->getMainConfig()->get( 'EntitySchemaSkippedIDs' )
89        );
90    },
91
92    'EntitySchema.LabelLookup' => static function ( MediaWikiServices $services ): ?LabelLookup {
93        if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
94            return null;
95        }
96        return new LabelLookup(
97            WikibaseRepo::getLanguageFallbackChainFactory( $services )
98        );
99    },
100
101    'EntitySchema.MediaWikiPageUpdaterFactory' => static function (
102        MediaWikiServices $services
103    ): MediaWikiPageUpdaterFactory {
104        return new MediaWikiPageUpdaterFactory(
105            $services->getPermissionManager(),
106            $services->getTempUserCreator(),
107            $services->getTitleFactory(),
108            $services->getWikiPageFactory()
109        );
110    },
111
112    'EntitySchema.SchemaDataResolvingLabelLookup' =>
113        static function ( MediaWikiServices $services ): ?SchemaDataResolvingLabelLookup {
114            if ( !$services->getMainConfig()->get( 'EntitySchemaIsRepo' ) ) {
115                return null;
116            }
117            return new SchemaDataResolvingLabelLookup(
118                EntitySchemaServices::getFullViewSchemaDataLookup( $services ),
119                EntitySchemaServices::getLabelLookup( $services )
120            );
121        },
122
123    'EntitySchema.WatchlistUpdater' => static function (
124        MediaWikiServices $services
125    ): WatchlistUpdater {
126        return new WatchlistUpdater(
127            $services->getUserOptionsLookup(),
128            $services->getWatchlistManager()
129        );
130    },
131
132];