Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 8 |
|
0.00% |
0 / 8 |
CRAP | |
0.00% |
0 / 1 |
Services | |
0.00% |
0 / 8 |
|
0.00% |
0 / 8 |
72 | |
0.00% |
0 / 1 |
__construct | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getInstance | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
get | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
has | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getLabeledSectionContentFetcher | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getLocalMessageContentFetcher | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getPageMessageBuilder | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 | |||
getRemoteMessageContentFetcher | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
2 |
1 | <?php |
2 | declare( strict_types = 1 ); |
3 | |
4 | namespace MediaWiki\MassMessage; |
5 | |
6 | use MediaWiki\MassMessage\MessageContentFetcher\LabeledSectionContentFetcher; |
7 | use MediaWiki\MassMessage\MessageContentFetcher\LocalMessageContentFetcher; |
8 | use MediaWiki\MassMessage\MessageContentFetcher\RemoteMessageContentFetcher; |
9 | use MediaWiki\MassMessage\PageMessage\PageMessageBuilder; |
10 | use MediaWiki\MediaWikiServices; |
11 | use 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 | */ |
21 | class 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 | } |