Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
45.74% |
43 / 94 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
1 | <?php |
2 | declare( strict_types = 1 ); |
3 | |
4 | use EntitySchema\DataAccess\DescriptionLookup; |
5 | use EntitySchema\DataAccess\FullViewSchemaDataLookup; |
6 | use EntitySchema\DataAccess\LabelLookup; |
7 | use EntitySchema\DataAccess\MediaWikiPageUpdaterFactory; |
8 | use EntitySchema\DataAccess\SchemaDataResolvingLabelLookup; |
9 | use EntitySchema\DataAccess\SqlIdGenerator; |
10 | use EntitySchema\DataAccess\WatchlistUpdater; |
11 | use EntitySchema\Domain\Storage\IdGenerator; |
12 | use EntitySchema\MediaWiki\EntitySchemaServices; |
13 | use EntitySchema\MediaWiki\HookRunner; |
14 | use EntitySchema\Presentation\AutocommentFormatter; |
15 | use EntitySchema\Wikibase\Search\EntitySchemaSearchHelperFactory; |
16 | use EntitySchema\Wikibase\Validators\EntitySchemaExistsValidator; |
17 | use MediaWiki\MediaWikiServices; |
18 | use Wikibase\Repo\WikibaseRepo; |
19 | |
20 | /** @phpcs-require-sorted-array */ |
21 | return [ |
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 | ]; |