Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
WikiLambdaServices
n/a
0 / 0
n/a
0 / 0
9
n/a
0 / 0
 getZObjectStore
n/a
0 / 0
n/a
0 / 0
1
 getWikifunctionsClientStore
n/a
0 / 0
n/a
0 / 0
1
 getZObjectAuthorization
n/a
0 / 0
n/a
0 / 0
1
 getMemcachedWrapper
n/a
0 / 0
n/a
0 / 0
1
 getAbstractWikiRequest
n/a
0 / 0
n/a
0 / 0
1
 getPFragmentRenderer
n/a
0 / 0
n/a
0 / 0
1
 getAWArticleStore
n/a
0 / 0
n/a
0 / 0
1
 buildZObjectStore
n/a
0 / 0
n/a
0 / 0
1
 buildMemcachedWrapper
n/a
0 / 0
n/a
0 / 0
1
1<?php
2/**
3 * WikiLambda Services
4 *
5 * @file
6 * @ingroup Extensions
7 * @copyright 2020– Abstract Wikipedia team; see AUTHORS.txt
8 * @license MIT
9 */
10
11namespace MediaWiki\Extension\WikiLambda;
12
13use MediaWiki\Extension\WikiLambda\AbstractContent\AbstractWikiRequest;
14use MediaWiki\Extension\WikiLambda\Authorization\ZObjectAuthorization;
15use MediaWiki\Extension\WikiLambda\AWStorage\AWArticleStore;
16use MediaWiki\Extension\WikiLambda\Cache\MemcachedWrapper;
17use MediaWiki\Extension\WikiLambda\ParserFunction\WikifunctionsPFragmentRenderer;
18use MediaWiki\Logger\LoggerFactory;
19use MediaWiki\MediaWikiServices;
20
21/**
22 * @codeCoverageIgnore
23 */
24class WikiLambdaServices {
25
26    /**
27     * @return ZObjectStore
28     */
29    public static function getZObjectStore(): ZObjectStore {
30        return MediaWikiServices::getInstance()->getService( 'WikiLambdaZObjectStore' );
31    }
32
33    /**
34     * Note: Not explicitly typed, as this service is mocked in tests
35     *
36     * @return WikifunctionsClientStore
37     */
38    public static function getWikifunctionsClientStore(): WikifunctionsClientStore {
39        return MediaWikiServices::getInstance()->getService( 'WikifunctionsClientStore' );
40    }
41
42    /**
43     * @return ZObjectAuthorization
44     */
45    public static function getZObjectAuthorization(): ZObjectAuthorization {
46        return MediaWikiServices::getInstance()->getService( 'WikiLambdaZObjectAuthorization' );
47    }
48
49    /**
50     * @return MemcachedWrapper
51     */
52    public static function getMemcachedWrapper(): MemcachedWrapper {
53        return MediaWikiServices::getInstance()->getService( 'WikiLambdaMemcachedWrapper' );
54    }
55
56    /**
57     * @return AbstractWikiRequest
58     */
59    public static function getAbstractWikiRequest(): AbstractWikiRequest {
60        return MediaWikiServices::getInstance()->getService( 'AbstractWikiRequest' );
61    }
62
63    /**
64     * @return WikifunctionsPFragmentRenderer
65     */
66    public static function getPFragmentRenderer(): WikifunctionsPFragmentRenderer {
67        return MediaWikiServices::getInstance()->getService( 'WikiLambdaPFragmentRenderer' );
68    }
69
70    /**
71     * @return AWArticleStore
72     */
73    public static function getAWArticleStore(): AWArticleStore {
74        return MediaWikiServices::getInstance()->getService( 'AbstractWikiArticleStore' );
75    }
76
77    /**
78     * Constructs a new instance of ZObjectStore.
79     * Reused by service wiring and installer bootstrapping.
80     *
81     * @internal For use in Service Wiring and early setup on RepoHooks
82     */
83    public static function buildZObjectStore( MediaWikiServices $services ): ZObjectStore {
84        return new ZObjectStore(
85            $services->getConnectionProvider(),
86            $services->getTitleFactory(),
87            $services->getWikiPageFactory(),
88            $services->getRevisionStore(),
89            $services->getUserGroupManager(),
90            LoggerFactory::getInstance( 'WikiLambda' )
91        );
92    }
93
94    /**
95     * Constructs a new instance of the MemcachedWrapper for WikiLambda's content caching.
96     *
97     * @internal For use in Service Wiring and early setup on RepoHooks
98     */
99    public static function buildMemcachedWrapper( MediaWikiServices $services ): MemcachedWrapper {
100        $extensionConfig = $services->getConfigFactory()->makeConfig( 'WikiLambda' );
101        return new MemcachedWrapper( $extensionConfig );
102    }
103}