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