Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 8
CRAP
0.00% covered (danger)
0.00%
0 / 1
Services
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 8
72
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getInstance
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 get
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 has
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getLabeledSectionContentFetcher
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getLocalMessageContentFetcher
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPageMessageBuilder
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getRemoteMessageContentFetcher
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2declare( strict_types = 1 );
3
4namespace MediaWiki\MassMessage;
5
6use MediaWiki\MassMessage\MessageContentFetcher\LabeledSectionContentFetcher;
7use MediaWiki\MassMessage\MessageContentFetcher\LocalMessageContentFetcher;
8use MediaWiki\MassMessage\MessageContentFetcher\RemoteMessageContentFetcher;
9use MediaWiki\MassMessage\PageMessage\PageMessageBuilder;
10use MediaWiki\MediaWikiServices;
11use Psr\Container\ContainerInterface;
12
13/**
14 * Minimal service container.
15 *
16 * Main purpose is to give type-hinted getters for services defined in this extensions.
17 * @author Abijeet Patro
18 * @since 2022.01
19 * @license GPL-2.0-or-later
20 */
21class Services implements ContainerInterface {
22    /** @var MediaWikiServices */
23    private $container;
24
25    /** @param MediaWikiServices $container */
26    private function __construct( MediaWikiServices $container ) {
27        $this->container = $container;
28    }
29
30    /** @return Services */
31    public static function getInstance(): Services {
32        return new self( MediaWikiServices::getInstance() );
33    }
34
35    /** @inheritDoc */
36    public function get( string $id ) {
37        return $this->container->get( $id );
38    }
39
40    /** @inheritDoc */
41    public function has( string $id ): bool {
42        return $this->container->has( $id );
43    }
44
45    /**
46     * @since 2022.01
47     * @return LabeledSectionContentFetcher
48     */
49    public function getLabeledSectionContentFetcher(): LabeledSectionContentFetcher {
50        return $this->container->getService( 'MassMessage:LabeledSectionContentFetcher' );
51    }
52
53    /**
54     * @since 2022.01
55     * @return LocalMessageContentFetcher
56     */
57    public function getLocalMessageContentFetcher(): LocalMessageContentFetcher {
58        return $this->container->getService( 'MassMessage:LocalMessageContentFetcher' );
59    }
60
61    /**
62     * @since 2022.01
63     * @return PageMessageBuilder
64     */
65    public function getPageMessageBuilder(): PageMessageBuilder {
66        return $this->container->getService( 'MassMessage:PageMessageBuilder' );
67    }
68
69    /**
70     * @since 2022.01
71     * @return RemoteMessageContentFetcher
72     */
73    public function getRemoteMessageContentFetcher(): RemoteMessageContentFetcher {
74        return $this->container->getService( 'MassMessage:RemoteMessageContentFetcher' );
75    }
76}