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 | /** |
3 | * Services for CirrusSearch extensions |
4 | */ |
5 | |
6 | use CirrusSearch\CirrusSearch; |
7 | use CirrusSearch\CirrusSearchHookRunner; |
8 | use CirrusSearch\InterwikiResolver; |
9 | use CirrusSearch\InterwikiResolverFactory; |
10 | use CirrusSearch\Profile\SearchProfileServiceFactory; |
11 | use CirrusSearch\Query\DeepcatFeature; |
12 | use MediaWiki\MediaWikiServices; |
13 | use MediaWiki\Sparql\SparqlClient; |
14 | |
15 | // PHP unit does not understand code coverage for this file |
16 | // as the @covers annotation cannot cover a specific file |
17 | // This is fully tested in ServiceWiringTest.php |
18 | // @codeCoverageIgnoreStart |
19 | |
20 | return [ |
21 | 'CirrusSearch' => static function ( MediaWikiServices $services ): CirrusSearch { |
22 | return new CirrusSearch(); |
23 | }, |
24 | |
25 | // SPARQL client for deep category search |
26 | 'CirrusCategoriesClient' => static function ( MediaWikiServices $services ) { |
27 | $config = $services->getMainConfig(); |
28 | $client = new SparqlClient( $config->get( 'CirrusSearchCategoryEndpoint' ), |
29 | $services->getHttpRequestFactory() ); |
30 | $client->setTimeout( DeepcatFeature::TIMEOUT ); |
31 | $client->setClientOptions( [ |
32 | 'userAgent' => DeepcatFeature::USER_AGENT, |
33 | ] ); |
34 | return $client; |
35 | }, |
36 | InterwikiResolverFactory::SERVICE => static function ( MediaWikiServices $services ) { |
37 | return InterwikiResolverFactory::newFactory(); |
38 | }, |
39 | InterwikiResolver::SERVICE => static function ( MediaWikiServices $services ) { |
40 | $config = $services->getConfigFactory() |
41 | ->makeConfig( 'CirrusSearch' ); |
42 | return $services |
43 | ->getService( InterwikiResolverFactory::SERVICE ) |
44 | ->getResolver( $config ); |
45 | }, |
46 | SearchProfileServiceFactory::SERVICE_NAME => static function ( MediaWikiServices $services ) { |
47 | $config = $services->getConfigFactory() |
48 | ->makeConfig( 'CirrusSearch' ); |
49 | return new SearchProfileServiceFactory( $services->getService( InterwikiResolver::SERVICE ), |
50 | /** @phan-suppress-next-line PhanTypeMismatchArgumentSuperType $config is actually a SearchConfig */ |
51 | $config, |
52 | $services->getLocalServerObjectCache(), |
53 | new CirrusSearchHookRunner( $services->getHookContainer() ), |
54 | $services->getUserOptionsLookup(), |
55 | ExtensionRegistry::getInstance() |
56 | ); |
57 | } |
58 | ]; |
59 | |
60 | // @codeCoverageIgnoreEnd |