Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 30
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3namespace MediaWiki\Extension\PageViewInfo;
4
5use MediaWiki\Context\RequestContext;
6use MediaWiki\Logger\LoggerFactory;
7use MediaWiki\MediaWikiServices;
8
9return [
10    'PageViewService' => static function ( MediaWikiServices $services ): PageViewService {
11        $mainConfig = $services->getMainConfig();
12        $extensionConfig = $services->getConfigFactory()->makeConfig( 'PageViewInfo' );
13        $endpoint = $extensionConfig->get( 'PageViewInfoWikimediaEndpoint' );
14        $project = $extensionConfig->get( 'PageViewInfoWikimediaDomain' )
15            ?: $mainConfig->get( 'ServerName' );
16        $cache = $services->getObjectCacheFactory()->getLocalClusterInstance();
17        $titleFormatter = $services->getTitleFormatter();
18        $logger = LoggerFactory::getInstance( 'PageViewInfo' );
19        $cachedDays = max( 30, $extensionConfig->get( 'PageViewApiMaxDays' ) );
20
21        $service = new WikimediaPageViewService(
22            $services->getHttpRequestFactory(),
23            $titleFormatter,
24            $endpoint,
25            [ 'project' => $project ],
26            $extensionConfig->get( 'PageViewInfoWikimediaRequestLimit' )
27        );
28        $service->setLogger( $logger );
29        $service->setOriginalRequest( RequestContext::getMain()->getRequest() );
30
31        $cachedService = new CachedPageViewService(
32            $service,
33            $cache,
34            $titleFormatter
35        );
36        $cachedService->setCachedDays( $cachedDays );
37        $cachedService->setLogger( $logger );
38        return $cachedService;
39    },
40];